gpt4 book ai didi

java - SSL HandShakeException : No_Certificate. 使用 IBM 的 J9 JVM 和 Apache Tomcat

转载 作者:行者123 更新时间:2023-11-28 22:34:01 27 4
gpt4 key购买 nike

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

我已经为客户端和服务器生成了公钥/私钥,导出了它们的自签名证书并将它们导入到各自的 keystore 中。最初我试图只使用服务器端身份验证让它工作并且成功了。但我现在正尝试通过在 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)

客户端 keystore 和信任库通过设置以下系统属性进行配置:

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

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

最佳答案

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

现在使用 Skelmir 的 CEE-J,到目前为止它更有前途。

关于java - SSL HandShakeException : No_Certificate. 使用 IBM 的 J9 JVM 和 Apache Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2221532/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com