为了对我的 xmpp 堆栈进行集成测试,我在本地主机上设置了一个 vysper 服务器(0.7)。
现在我想在 4.0.2 版本中使用 smack-core 和 smack-tcp 连接到服务器。
问题:
Caused by: javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
由于smack 4 api变化很大,目前找到的例子已经不能用了。
有人试过这个吗?
最佳答案
SSLHandashskeException
告诉我们 SSL/TLS 握手失败,这是因为有一个 ValidatorException
告诉我们“PKIX 路径构建失败”,因为抛出了 SunCertPathBuilderException
因为 Java API 是“无法找到有效的认证路径到请求的目标”。
Java API(即这不是由 Smack 完成的)无法使用 Activity 的 SSLContext 构建到服务器 SSL/TLS 证书的有效证书链。这就是抛出这个异常的原因。您需要提供有效的证书(但由您当前使用的 SSLContext 定义)或告诉 Smack 使用接受您当前服务器证书的 SSLContext ( ConnectionConfiguration.setCustomSSLContext(SSLContext)
)
关于java - Smack 4 在连接时抛出 "SSLHandshakeException: ValidatorException: SunCertPathBuilderException",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25495368/