为了对我的 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/