我想了解验证链的工作方式。我的信任库中真正需要哪些证书?
我有一个带有根 CA -> 中间 1 -> 中间 2 -> 服务器证书的链。我的信任库中只有中间 2 证书。在我的一台测试机器上,这一切正常,但在我的另一台机器上却不行(联系具有类似配置的不同服务器)。我得到了这个流行的 SunCertPathBuilderException:无法找到请求的目标异常的有效证书路径。服务器发送完整的链。我想解决方案是将整个链放到根 CA 到我的信任库。
我想知道为什么它可以在一台机器上运行,而在另一台机器上不行。是否有可能对链验证的工作方式产生影响?服务器可以要求全链验证吗?
我不知道是否自动包含来自 jdk 的默认信任库。两台机器的 jdk 版本 1.7.0_21(不工作)和 1.7.0_25(工作)略有不同。有关系吗?
还有一件事:这个 SunCertPathBuilderException - 是否有可能找出他不喜欢链的哪一部分?
我很高兴任何提示。谢谢,海克