java调用ip直接访问https接口有关问题
java调用ip直接访问https接口问题
报错如下
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names present
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
网上查结果是不支持ip访问,必须用域名
于是修改hosts做本地解析
192.168.1.153 www.test.com
nginx 域名跳转
server {
listen 80;
server_name www.test.com;
location / {
proxy_pass https://xxx.xxx.xxx.xxx;
}
}
大功告成
@Test public void initData() { BufferedReader reader = null; InputStream is = null; try { URL url = new URL("https://xxx.xxx.xxx.xxx/api/xxx"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("Content-Type", "application/xml;charset=utf-8;"); connection.setRequestProperty("Authorization", "Basic xxxxxxxxxxxxxxxxxxxxxxxxx="); connection.connect(); is = connection.getInputStream(); reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); StringBuilder buffer = new StringBuilder(); String strRead = null; while ((strRead = reader.readLine()) != null) { buffer.append(strRead); } System.out.println(buffer); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(reader); IOUtils.closeQuietly(is); } }
报错如下
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names present
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
网上查结果是不支持ip访问,必须用域名
于是修改hosts做本地解析
192.168.1.153 www.test.com
nginx 域名跳转
server {
listen 80;
server_name www.test.com;
location / {
proxy_pass https://xxx.xxx.xxx.xxx;
}
}
大功告成