我们的外部供应商 WS 使用“自签名证书”,我完全按照以下线程中给出的说明在信任库中下载并导入了证书:
数字证书:如何使用将 .cer 文件导入 .truststore 文件?
我还通过运行以下命令验证了证书是否已正确添加:
keytool -list -v -keystore keystore.jks
我在我的 run.config (JBoss) 文件中添加了以下条目:
if [ "x$JAVA_OPTS" = "x" ]; then
JAVA_OPTS="-Xms1024m -Xmx2048m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djavax.net.ssl.trustStore=/jboss/jdk1.6.0_25/jre/lib/security/cacerts -Djavax.net.ssl.trustStorePassworld=changeit"
fi
重新启动服务,仍然得到以下执行:
ERROR [org.jboss.ws.core.CommonClient] Exception caught while (preparing for) performing the invocation:
java.io.IOException: Could not transmit message
....
....
....
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
我会错过什么?