首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSL HandShakeException: No_Certificate。使用IBM的J9和Apache Tomcat

SSL HandShakeException: No_Certificate。使用IBM的J9和Apache Tomcat
EN

Stack Overflow用户
提问于 2010-02-08 20:33:30
回答 2查看 1.9K关注 0票数 1

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

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

我已经在服务器上启用了SSL日志,当客户端连接时,服务器会报告一个SSLProtocolException:握手警告: no_certificate。客户端日志还显示了一个异常:

代码语言:javascript
复制
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)

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

代码语言:javascript
复制
javax.net.ssl.trustStore
javax.net.ssl.trustStorePassword
javax.net.ssl.keyStore
javax.net.ssl.keyStorePassword

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-08 17:30:35

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

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

票数 0
EN

Stack Overflow用户

发布于 2010-02-08 23:53:15

基本上,客户端不会发送证书。服务器无法对客户端进行身份验证:有时它不能接收证书,或者不是相同的CA_ROOT,等等,并且不能设置响应。根据消息'no_certificate‘,很容易想象客户端没有发送任何内容。检查您的文件(路径)或标签:您应该使用truststorePass而不是'trustStore',而不是'trustStorePassword‘

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2221532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档