我有 2 台新机器,安装了相同版本的 JDK7。
在其中一台机器上,我可以通过 HTTPS 从我的 Java 应用程序成功连接到远程主机,没有任何问题,也无需将任何证书导入默认的“cacerts”密钥库。
但是在另一台机器上我得到了 subj 错误。
两台机器上的 JDK 完全相同。机器之间的唯一区别是其中一台位于欧洲,一台位于美国(这是我遇到错误的地方)。
有没有人知道在我的情况下可能导致此错误的原因是什么?
更新
我尝试连接的主机证书由 QuoVadis CA 颁发,默认情况下,它在 Java 分发的 cacerts 中具有适当的记录。
更新2
看起来有问题的机器由于某种原因没有从它尝试连接的机器接收到整个证书链(我只能看到链中的最后一个证书,紧随其后的是一条消息 certificate_unknown)。所以它没有获得根证书。
除此之外,我在日志中看到的唯一区别是工作机器使用 TLS_RSA_WITH_AES_128_CBC_SHA 密码套件,而不工作机器使用 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 密码套件。这可能是我的问题的原因吗?(我也无法理解为什么他们使用不同的密码套件,而 JDK 相同并且它们连接到同一台机器)