0

我正在通过 SSL 使用来自远程服务器的 Web 服务。

远程服务器有一个 Tomcat FE。我们让 Verisign 签署了远程服务器证书,证书链是:

o:remote.server.com
i:VeriSign Class 3 安全服务器 CA - G3
i:VeriSign 3 类公共主要证书颁发机构 - G5

我们将此证书添加到 Tomcat 的密钥库中,还添加了 Verisign 的中间证书,其中:

o:VeriSign Class 3 Public Primary Certification Authority - G5
i:Class 3 公共主要认证机构

当我从我的服务器调用 web 服务时,我得到一个 SSL 握手异常:

未找到受信任的证书

在我服务器的 JVM cacerts 上,我有“Class 3 Public Primary Certification Authority”,但没有“VeriSign Class 3 Public Primary Certification Authority - G5 证书”。

如果我将“VeriSign Class 3 Public Primary Certification Authority - G5”证书添加到 jvm,那么我将停止获得异常。但是,据我了解,Tomcat 应该链接证书,以便当我的服务器获得远程证书时,它将看到“3 类公共主要证书颁发机构”作为根颁发机构。

为什么这里不发生这种情况?

4

1 回答 1

1

我终于解决了这个问题。
似乎我们的服务器密钥库安装了几个冗余证书。一旦我们删除了多余的证书,只剩下服务器证书和 ca-chain 证书,客户端就会收到完整的链,并停止获取 SSL 握手异常。

Verisign 有一个工具可以帮助我解决这个问题
https://ssl-tools.verisign.com/#certChecker

于 2012-02-19T12:16:53.993 回答