【问题标题】:glassfish SSLHandshakeException: Received fatal alert: unknown_caglassfish SSLHandshakeException:收到致命警报:unknown_ca
【发布时间】:2018-04-09 05:51:40
【问题描述】:

我必须通过 HTTPS 调用具有客户端身份验证的 SOAP Web 服务。

我已通过 keyStore 文件将客户端证书(从托管服务器的公司获得)导入。我还将服务器证书(从服务器下载)导入到我的 trustStore。我已将 'javax.net.ssl.keyStore' 和 'javax.net.ssl.keyStorePassword' 设置为适当的值。

当我从一个简单的 java 客户端(包括一些额外的 jars)调用 Web 服务时,调用工作正常,我从服务器获得了结果。

当我从 glassfish-4(相同的 java、相同的 keyStore、相同的 trustStore、相同的 'javax.net.ssl.keyStore' 值等)中调用 Web 服务时,我得到一个异常 'com.sun.xml。 ws.client.ClientTransportException:HTTP 传输错误:javax.net.ssl.SSLHandshakeException:收到致命警报:unknown_ca'。

我在这两种情况下都使用相同的 java、相同的密钥库、相同的 trustStore。没有 glassfish 的第一个版本可以工作,所以证书似乎没问题。 glassfish 的第二个版本没有。

glassfish-4 有什么特定的功能吗? 这可能是其他(第三方)库的问题吗? 我可以尝试任何其他 HTTP/SSL 设置吗? 还能是什么?

有人有想法吗? 感谢您的帮助。

【问题讨论】:

    标签: java glassfish sslhandshakeexception


    【解决方案1】:

    我找到了问题。

    Glassfish 需要额外的 VM 属性“com.sun.enterprise.security.httpsOutboundKeyAlias”。 这必须设置为客户端证书的别名。

    对于标准,这是在 java-config 区域的 domain.xml 中设置的。 对于标准,这设置为 -Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as。

    将值 s1as 更改为证书的别名。

    【讨论】:

      猜你喜欢
      • 2019-07-06
      • 2012-10-15
      • 1970-01-01
      • 2014-03-09
      • 2020-06-07
      • 2016-10-13
      相关资源
      最近更新 更多