Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xmpp &引用;CertPathValidatorException:找不到证书路径的信任锚点。”;使用(a)Smack 4.0.0_Xmpp_Smack - Fatal编程技术网

Xmpp &引用;CertPathValidatorException:找不到证书路径的信任锚点。”;使用(a)Smack 4.0.0

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配置不正确。这些信任锚错误通常意味着找不到信任存储。检查您的配置,确保您实际指向了信任存储,并且信任存

我最近更新了asmack jar。现在我得到一个类似这样的错误:

07-18 12:49:29.523:W/XMPPConnection(6817):javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚点


当我尝试连接时。早期的一切都正常工作(使用旧版本)。

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);
        }