我正在使用自签名的私有 CA 证书。我已将证书导入我的 Android 设备。我可以在“设置”->“安全”->“受信任的凭据”->“用户”下看到它。
我能够访问使用 CA 签名证书的网站。我能看到绿色挂锁。但是当我从我的 android 应用程序对相同的 URL 进行 HTTPS 调用时,我得到Trust anchor for certification path not found
.
我尝试为 HTTPS 调用使用自己的 SSL 上下文,并且能够获得 200(成功)。但我只被允许使用默认的 android 信任库。如果没有任何效果,那么我的最终选择将是使用自定义 SSL 上下文。所以,我想确定默认的信任存储方式是否有效。
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
if(conn instanceof HttpsURLConnection && sslSocketFactory != null){
((HttpsURLConnection) conn).setSSLSocketFactory(sslSocketFactory);
}
int responseCode = conn.getResponseCode();
任何进一步调试的想法都会有所帮助,因为我已经坚持了将近一个星期。
谢谢。