我正在与一个名为“英雄”的产品合作,该产品是“蓝色分子”的走廊。 在这种特殊安装中,赫梅人需要使用一个服务器证书来签署即将发出的信息,我们用p12格式(pfx)从我们重新整合的合作伙伴那里下载该信息。
我已经核实,密码是正确的,我也具体指明了正确之处。
该证书也安装在Tomcat。 然后,我通过SSLShopper.com的一个工具对证书进行了测试。 该工具所报告的问题是,证书中的共同名称与服务器域名不符。 我不相信这可能是原因。 实际上,在申请证书时没有规定共同名称的地方。 他们要求获得姓名和姓等。
我要指出,根据SSLShopper测试,我的证明链是:
MyServer -> MyPartner
在我的合伙人不是协会的地方(这意味着它不是FF经证明的方言中所列的人之一)。
我希望有人在座,知道我会去做什么。
<>Hermes Configuation:
<component id="keystore-manager-for-signature" name="Key Store Manager for Digital Signature">
<class>hk.hku.cecid.piazza.commons.security.KeyStoreManager</class>
<parameter name="keystore-location" value="/opt/mycompany/certs/MyCert.pfx"/>
<parameter name="keystore-password" value="12345678"/>
<parameter name="key-alias" value="e38a429e10666c"/>
<parameter name="key-password" value="12345678"/>
<parameter name="keystore-type" value="PKCS12"/>
<parameter name="keystore-provider" value="org.bouncycastle.jce.provider.BouncyCastleProvider"/>
</component>
Hermes Error:
2012-01-16 08:02:47 [Thread-28 ] <ERROR> <cecid.ebms.spa> <Cannot send the message>
hk.hku.cecid.piazza.commons.net.ConnectionException: Unable to send HTTP SOAP request
by javax.net.ssl.SSLException: java.lang.RuntimeException: Unable to retrieve certificate chain
by java.lang.RuntimeException: Unable to retrieve certificate chain
by java.lang.NullPointerException
at hk.hku.cecid.piazza.commons.soap.SOAPHttpConnector.send(SOAPHttpConnector.java:112)
at hk.hku.cecid.ebms.spa.task.OutboxTask.sendMsgByHttp(OutboxTask.java:574)
at hk.hku.cecid.ebms.spa.task.OutboxTask.execute(OutboxTask.java:444)
at hk.hku.cecid.piazza.commons.module.ActiveThread.run(ActiveThread.java:90)
at java.lang.Thread.run(Thread.java:619)
Caused by: javax.net.ssl.SSLException: java.lang.RuntimeException: Unable to retrieve certificate chain
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1623)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1586)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1569)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1154)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1131)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:904)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
at hk.hku.cecid.piazza.commons.soap.SOAPHttpConnector.send(SOAPHttpConnector.java:84)
... 4 more