Java 添加URL.openStream使用的证书
我在Android上有一些使用URL.openStream的代码。出于内部测试目的,我需要能够将其指向使用私有CA的服务器。我们已经有了PEM格式的CA包(因为我们也使用NDK的libcurl),并且希望能够将PEM文件直接读取到URL.openStream使用的任何密钥库(或类似密钥库)中 所以这个问题是一个多部分的问题:Java 添加URL.openStream使用的证书,java,android,https,Java,Android,Https,我在Android上有一些使用URL.openStream的代码。出于内部测试目的,我需要能够将其指向使用私有CA的服务器。我们已经有了PEM格式的CA包(因为我们也使用NDK的libcurl),并且希望能够将PEM文件直接读取到URL.openStream使用的任何密钥库(或类似密钥库)中 所以这个问题是一个多部分的问题: 如何获取URL.openStream使用的密钥存储?或者我应该直接使用HttpClient吗 如何将PEM证书添加到所述密钥存储?(即使使用HttpClient) 谢谢。我
谢谢。我不能专门为Android说话,但至少标准桌面Java有一个默认密钥库,供JVM的所有实例使用,位于/lib/security/cacerts 在许多情况下,不应针对JVM的所有实例全局修改此文件,而应根据具体情况进行修改,正如您已经回避的那样。为此,您不能直接调用
.openStream
。相反,通过调用(并将其强制转换为执行HttpsURLConnection)来获取。在此连接上执行任何其他操作之前,请通过调用HttpsURLConnection设置自定义。。从这里开始,您需要使用自定义SSLContext和TrustManager
有关此问题的其他详细信息,请参阅
如果您想使用HttpClient,可以在和处获得其他参考