3

在 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|...|#]

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

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

4

1 回答 1

1

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

于 2010-06-22T19:35:08.727 回答