2012-02-09 285 views
0

我通过SSL使用远程服务器上的web服务。远程服务器不信任tomcat上的verisign证书

远程服务器有一个Tomcat FE。我们有威瑞信签署远程服务器证书和证书链是:

 
o:remote.server.com 
i:VeriSign Class 3 Secure Server CA - G3 
i:VeriSign Class 3 Public Primary Certification Authority - G5 

我们加入这个证书到Tomcat的密钥库也加入Verisign的这其中中间证书:

 
o:VeriSign Class 3 Public Primary Certification Authority - G5 
i:Class 3 Public Primary Certification Authority 

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

没有受信任的证书找到

在我的服务器的JVM cacerts上,我拥有“Class 3 Public Primary Certification Authority”,但没有“VeriSign Class 3公共主认证机构 - G5证书”。

如果我将“VeriSign Class 3公共主认证机构 - G5”证书添加到jvm,那么我将停止得到例外。然而,我的理解是,Tomcat应链接证书,以便当我的服务器获得远程证书时,它将看到“第3类公共主要证书颁发机构”作为根颁发机构。

这是怎么发生的呢?

+0

你怎么这些证书添加到您的Tomcat密钥库? – Bruno 2012-02-09 14:44:04

+0

检查这个答案,我很确定它解释你的问题比我可以[JVM SSL证书问题](http://stackoverflow.com/questions/5758812/the-webserver-i-talk-to-updated-其-SSL-CERT-和现在,我-APP-着的通话到它) – 2012-02-09 14:27:01

回答

1

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

有Verisign颁发一个工具,它帮助我解决此问题
https://ssl-tools.verisign.com/#certChecker

相关问题