首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >找不到Android SSL连接的信任锚点

找不到Android SSL连接的信任锚点
EN

Stack Overflow用户
提问于 2011-07-26 12:22:51
回答 12查看 501.2K关注 0票数 218

我正在尝试连接到运行GoDady256bitSSL证书的IIS6机器,但收到错误消息:

代码语言:javascript
复制
java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

一直在努力找出可能的原因,但现在什么都没查到。

下面是我是如何连接的:

代码语言:javascript
复制
HttpsURLConnection conn;              
conn = (HttpsURLConnection) (new URL(mURL)).openConnection();
conn.setConnectTimeout(20000);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.connect();
String tempString = toString(conn.getInputStream());
EN

回答 12

Stack Overflow用户

发布于 2016-10-06 05:01:58

您可以在运行时信任特定的证书。

只需从服务器下载它,放入资产,然后使用ssl-utils-android加载

代码语言:javascript
复制
OkHttpClient client = new OkHttpClient();
SSLContext sslContext = SslUtils.getSslContextForCertificateFile(context, "BPClass2RootCA-sha2.cer");
client.setSslSocketFactory(sslContext.getSocketFactory());

在上面的示例中,我使用的是OkHttpClient,但是SSLContext可以与Java中的任何客户端一起使用。

如果您有任何问题,请随时提出。我是这个小图书馆的作者。

票数 20
EN

Stack Overflow用户

发布于 2013-06-28 19:51:33

我收到的错误消息类似,但原因是自签名证书已过期。当我尝试openssl客户端时,它给了我一个原因,当我在firefox中检查证书对话框时,这个原因被忽略了。

因此,通常情况下,如果证书在密钥库中并且是“有效的”,那么这个错误就会发生。

票数 4
EN

Stack Overflow用户

发布于 2015-08-12 18:35:40

我也有同样的问题,我发现我提供的证书.crt文件缺少一个中间证书。所以我从我的服务器管理员那里询问了所有的.crt文件,然后以相反的顺序将它们连接起来。

例如。1. Root.crt 2. Inter.crt 3. myCrt.crt

在windows中,我执行了copy Inter.crt + Root.crt newCertificate.crt

(这里我忽略了myCrt.crt)

然后,我通过inputstream将newCertificate.crt文件转换成代码。工作完成了。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6825226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档