我使用的是自签名的私有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();
任何进一步调试的想法都会有所帮助,因为我已经坚持了将近一个星期。
谢谢。