Xmpp &引用;CertPathValidatorException:找不到证书路径的信任锚点。”;使用(a)Smack 4.0.0
我最近更新了asmack jar。现在我得到一个类似这样的错误: 07-18 12:49:29.523:W/XMPPConnection(6817):javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚点Xmpp &引用;CertPathValidatorException:找不到证书路径的信任锚点。”;使用(a)Smack 4.0.0,xmpp,smack,Xmpp,Smack,我最近更新了asmack jar。现在我得到一个类似这样的错误: 07-18 12:49:29.523:W/XMPPConnection(6817):javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚点 当我尝试连接时。早期的一切都正常工作(使用旧版本)。SSL配置不正确。这些信任锚错误通常意味着找不到信任存储。检查您的配置,确保您实际指向了信任存储,并且信任存
当我尝试连接时。早期的一切都正常工作(使用旧版本)。SSL配置不正确。这些信任锚错误通常意味着找不到信任存储。检查您的配置,确保您实际指向了信任存储,并且信任存储已就位。是的,下面的旧版本asmack(直到asmack-0.8.10)代码运行良好,如果您编写以下内容,则不会出现任何错误 ConnectionConfiguration ConnconConfig=新的ConnectionConfiguration(“主机名”,5222); connConfig.setSecurityMode(SecurityMode.enabled) 但在较新版本的asmack(asmack-4.0.4)中,如果使用connConfig.setSecurityMode(SecurityMode.enabled),此错误将持续存在 正如@cOcO在这里提到的,SSL没有正确配置。为此,您可以使用 它是一个开源库,下载它并在eclipse中作为android项目导入,然后作为libraryProject添加到您的android项目中 添加此库后,请在AndroidManifest.xml中添加以下行
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity android:name="de.duenndns.ssl.MemorizingActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
</application>
希望以上代码能解决您的问题
编辑:2014年10月16日
有关trust manager的更多信息,请访问此链接我想代理问题!请尝试连接到其他网络,然后重试。我尝试了您的方式,但收到一个错误:在回复超时内未收到响应。超时时间为10000ms(~10s)。在等待建立TLS时。如果您知道如何解决此问题,请提供帮助
try {
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, MemorizingTrustManager.getInstanceList(this.getApplicationContext()), new SecureRandom());
connConfig.setCustomSSLContext(sc);
} catch (NoSuchAlgorithmException e) {
throw new IllegalStateException(e);
} catch (KeyManagementException e) {
throw new IllegalStateException(e);
}