我正在尝试解决双向SSL握手机制问题。我收到错误
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
这表示我的一个密钥库或我的信任库文件没有相应的条目。我知道解决问题的方法是去服务器的信任库做keytool列表检查签名机构并来到客户端的密钥/信任库并验证这一点。
有人可以清楚地列出这些步骤(使用适当的命令)吗?谷歌搜索没有引导我到任何地方。我只需要一个步骤列表“如何确认客户端X可以通过使用Cert Z的双向SSL与服务器Y通信”?
答案 0 :(得分:4)
只要证书验证程序无法在证书和根证书之间建立链,就会抛出SunCertPathBuilderException异常。
确认证书验证的最简单方法是使用
等图形工具建议使用上述工具,因为在没有根证书的情况下通常会抛出异常。
如果要检查要交换的证书,最好打开验证失败的JVM节点上的ssl debug flag。
另一种选择是使用网络流量捕获实用程序(如Ethereal或Microsoft Netmon)来获取包含证书交换的流量转储。
PS:你是否首先使用正确的密钥库?我记得多月前做过同样的错误......