Java - 使用JAX-WS客户端的ssl证书

时间:2013-05-03 12:43:26

标签: java ssl ssl-certificate keytool

我已经使用keytool从服务器导入了自签名证书,并且一切正常。

问题是,只有当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名称。

有人有任何建议吗?

由于 亚历

2 个答案:

答案 0 :(得分:1)

您应该将主题备用名称添加到证书

subjectAltName=IP:serverIp

答案 1 :(得分:0)

有点解决它......在这里找到答案: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);