受信任的证书无效

时间:2010-06-18 10:54:50

标签: java ssl glassfish certificate appserver

在Sun Glassfish服务器中,我部署了一个通过SSL与外部Web服务进行通信的应用程序。

我已使用java keytool cli(keytool -import -trustcacerts -keystore cacerts.jks -alias somealias -file somecert.cer)在cacerts.jks中手动导入证书。

我验证一切正常,但经过一段时间后停止工作,我在日志中得到以下输出:

  

[#|2010-06-18T09:13:23.930+0200|WARNING|sun-appserver9.1|...|_ThreadID=850;_ThreadName=p: thread-pool-1; w: 901;javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: The certificate chain from the server is not trusted|...|#]

从此处服务停止工作。根据日志,在异常发生前不久,证书被质疑,服务器默认回复否,我怀疑这是产生错误的原因。

但是什么触发服务器突然质疑证书?证书已导入并在密钥库中标记为受信任。所有日期都可以。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

也许有一些其他应用程序正在更改系统属性(javax.net.ssl.trustStore)。 javax.net.ssl.trustStore指向可信密钥库。尝试打印出此System属性以查看它是否更改。 另一种选择是使用以下选项启动JVM -Djavax.net.debug=SSL,handshake,data,trustmanager 这应该会在stdout日志文件中为您提供一些详细的输出。