【发布时间】:2013-10-01 02:11:28
【问题描述】:
我需要忽略 PKIX 路径构建异常
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExc
ption: unable to find valid certification path to requested target
我知道如何通过编写自己的实现 X509TrustManager 的类来做到这一点,我总是从 isServerTrusted 实现 return true。
但这是相当广泛的。我的代码将成为更大项目的一部分。我不希望其他一切都因我更换信托经理而受到影响。
我总是会连接到一个固定的域名,即“www.myws.com”。我只想忽略 SSLHandshakeException 仅用于连接到“www.myws.com”。
这样的事情可能吗?
【问题讨论】:
-
这与您的其他问题非常相似,但似乎更关注如何为特定连接设置信任管理器。您使用的是哪些库?
-
@Bruno 这与我的其他问题类似。但肯定不是重复的。从 2 个不同的角度解决相同的问题。当域名与证书中的主题不匹配时,会引发 SSL 异常。在这里我尝试根据域名进行过滤,我尝试根据主题进行过滤。两个问题的答案几乎不可能相同,因为我认为 TrustMananger 根本不会获得服务器的域名。我认为域名比较会在要求 TrustManager 验证证书是否由受信任的 CA 签名之前(或之后)发生。
-
很公平。如果没有更多关于您对该客户端代码的控制程度以及正在使用哪些库的详细信息,几乎不可能回答您的问题。
-
澄清一下,您不能“忽略 SSLHandshakeException”。这对连接是致命的。但你可以阻止它发生。
标签: java security ssl x509certificate pki