【问题标题】:SSL HandShakeException: No_Certificate. Using IBM's J9 JVM and Apache TomcatSSL HandShakeException:No_Certificate。使用 IBM 的 J9 JVM 和 Apache Tomcat
【发布时间】:2010-02-08 12:33:29
【问题描述】:

我正在开发一个在 Windows Mobile PDA 上运行的移动应用程序。该应用程序是用 Java 编写的,为了运行它,我们使用了 IBM 的 J9 JVM。该应用程序通过 HTTP 与 Apache Tomcat 服务器通信,我们现在正尝试将其设置为使用 SSL。

我已经为客户端和服务器生成了公钥/私钥,导出了他们的自签名证书并将它们导入到各自的密钥库中。最初,我尝试仅使用服务器端身份验证使其正常工作,并且成功。但我现在正试图通过在 apache conf 目录的 server.xml 文件中设置 clientAuth="true" 来获得相互身份验证。

我已在服务器上启用 SSL 日志记录,当客户端连接服务器时报告 SSLProtocolException:握手警报:no_certificate。客户端日志也显示异常:

javax.net.ssl.SSLHandshakeException: unexpected_message
    at com.ibm.j9.jsse.SSLSocketImpl.completeHandshake(Unknown Source)
    at com.ibm.j9.jsse.SSLSocketImpl.startHandshake(Unknown Source)
    at com.ibm.oti.net.www.protocol.https.HttpsURLConnection.openSocket(Unknown Source)
    at com.ibm.oti.net.www.protocol.https.HttpsURLConnection.connect(Unknown Source)
    at com.ibm.oti.net.www.protocol.https.HttpsURLConnection.sendRequest(Unknown Source)
    at com.ibm.oti.net.www.protocol.https.HttpsURLConnection.doRequest(Unknown Source)
    at com.ibm.oti.net.www.protocol.https.HttpsURLConnection.getInputStream(Unknown Source)

通过设置以下系统属性来配置客户端密钥库和信任库:

javax.net.ssl.trustStore
javax.net.ssl.trustStorePassword
javax.net.ssl.keyStore
javax.net.ssl.keyStorePassword

有人知道如何在 J9 JVM 上设置客户端身份验证吗?

【问题讨论】:

    标签: java security tomcat ssl j9


    【解决方案1】:

    所以我得出的最终答案是切换到不同的 JVM。 IBM 提供的支持很少,只是试图让某人向我们出售他们的 JVM 许可证非常困难。我猜他们只喜欢与大型组织打交道。

    现在使用来自 Skelmir 的 CEE-J,到目前为止它更有希望。

    【讨论】:

      【解决方案2】:

      基本上,客户端不会发送证书。 服务器无法对客户端进行身份验证:有时它没有收到证书,或者不是同一个 CA_ROOT 等,无法设置响应。通过消息“no_certificate”很容易想象客户端没有发送任何东西。 检查你的文件(你的路径)或你的标签:你应该使用 truststoreFile 而不是“trustStore”,而不是“trustStorePassword”,使用 truststorePass

      【讨论】:

      • 路径很好。信任库与它无关,它包含服务器证书。密钥库更有可能出错,但我认为将其更改为 keystoreFile 和 keystorePass 没有任何意义。 System 属性被详细记录为 keyStore 和 keyStorePassword。
      • 你是对的,这些参数在服务器属性中。您是否尝试过使用网络浏览器并安装证书,检查是否可以建立 ssl 通道?我确定客户没有提供正确的证书。你在使用 PKCS12 吗?
      猜你喜欢
      • 2011-08-29
      • 1970-01-01
      • 2012-12-23
      • 2012-04-19
      • 2013-09-29
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      相关资源
      最近更新 更多