Java - 使用JAX-WS客户端的ssl证书
问题描述:
我已经使用keytool从服务器导入自签名证书,并且一切正常。Java - 使用JAX-WS客户端的ssl证书
问题是,它仅在CN名称对于具有JAX-WS客户端的https:url使用“example.corp.org”时有效。 我得到一个错误,如果我尝试使用服务器IP地址:
Exception in thread "AWT-EventQueue-0" com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names present
我明白为什么我得到的错误,但对于不同的原因,我需要使用服务器的IP地址连接到它,而不是CN名称。
任何人有任何建议吗?
感谢 亚历克西斯
答
您应该添加主题备用名称证书
subjectAltName=IP:serverIp
答
某种决心吧...在这里找到了答案:https://forums.oracle.com/forums/thread.jspa?messageID=6411944
HostnameVerifier myhostnameverifier = new HostnameVerifier()
{
@Override
public boolean verify(String urlHostName, SSLSession session)
{
return true;
}
};
HttpsURLConnection.setDefaultHostnameVerifier(myhostnameverifier);
我怎么能这样做那?我猜这是使用keytool完成的?如果我是正确的,会有一种解决方法,我可以在java代码中完成? – alexis 2013-05-03 13:25:51
我应该也说过,我无法控制从服务器上下载的自签名证书。 – alexis 2013-05-03 13:31:02