SSl握手Expcetion时出现错误的证书错误

时间:2015-06-18 08:55:52

标签: java ssl

安装Verisign证书后,我们收到了BAD证书错误, 相同的服务器在自签名证书上正常工作.. 请帮我解决这个错误。

6/17/15 23:56:29:493 PDT] 0000001c SystemErr R javax.net.ssl.SSLHandshakeException:错误证书         在com.ibm.jsse.bv.a(未知来源)         在com.ibm.jsse.bv.startHandshake(未知来源)         在com.ibm.net.ssl.www2.protocol.https.b.o(b.java:136)         在com.ibm.net.ssl.www2.protocol.https.i.connect(i.java:28)         在com.ibm.net.ssl.www2.protocol.http.bc.getOutputStream(bc.java:44)         在com.ibm.net.ssl.www2.protocol.https.l.getOutputStream(l.java:23)         在com.corio.tsr.webservices.SRAutomationWebServiceClient.getJsonObject(SRAutomationWebServiceClient.java:174)         at com.corio.tsr.jms.receiver.SRAutomationMessageBean.onMessage(Unknown Source)         at com.ibm.ejs.container.MessageEndpointHandler.invokeMdbMethod(MessageEndpointHandler.java:1013)         在com.ibm.ejs.container.MessageEndpointHandler.invoke(MessageEndpointHandler.java:746)         在$ Proxy1.onMessage(未知来源)

以上是SSL握手期间生成的错误日志。

已尝试以下步骤来解决此问题。 1)将证书导入服务器端(cacertsfile)

2 个答案:

答案 0 :(得分:0)

导入时cacerts文件是否损坏?

导入完成后可以粘贴控制台日志吗?也许你可以备份当前的cacerts文件,并从使用pristine jdk cacerts文件开始。

另外,检查证书存储文件中的证书

/usr/java/jdk1.8.0_45/bin/keytool -v -list -keystore <cert-file-full-path>

答案 1 :(得分:0)

错误的证书错误通常是由于缺少签名者证书。握手时,服务器将显示其个人证书。必须信任此证书,以便为签名者检查信任库。在自签名证书的情况下,自签名证书是它自己的签名者。因此,个人证书应该在信托存储中。对于Verisign证书(或任何CA),个人证书通常由一个或多个中间证书和根签名。这些签名者需要在信任存储区中,以避免错误的证书错误。