【问题标题】:Java - ssl certificate with JAX-WS clientJava - 带有 JAX-WS 客户端的 ssl 证书
【发布时间】:2013-05-03 12:43:25
【问题描述】:

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

问题是它仅在 CN 名称使用“example.corp.org”作为带有 JAX-WS 客户端的 https:url 时才有效。 如果我尝试使用服务器 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 名称来连接它。

有人有什么建议吗?

谢谢 亚历克西斯

【问题讨论】:

    标签: java ssl ssl-certificate keytool


    【解决方案1】:

    您应该在证书中添加主题备用名称

    subjectAltName=IP:serverIp
    

    【讨论】:

    • 我该怎么做?我猜这是使用keytool完成的?如果我是正确的,我可以在 java 代码中做一个解决方法吗?
    • 我还应该说我无法控制从服务器下载的自签名证书。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-04-16
      • 1970-01-01
      • 2011-05-05
      • 2012-02-15
      • 1970-01-01
      • 2022-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多