我正在尝试从Android应用程序使用Apache的HttpClient 4.X查询HTTPS网站。我收到javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
个例外。我遵循了导入证书的不同说明:
这些都不适合我。
我认为我的问题是该网站的证书链如下:
Telekom Root CA 2 包含在Android默认密钥库(/system/etc/security/cacerts.bks
)中。我在自己的手机上检查过,我用它进行测试。
现在问题是,我必须在自定义密钥库中包含哪些证书,所有说明都告诉我提供?只是中间体?只有网站?都?我还需要Root证书吗?不应该通过链验证Site's certificate
- 我不需要提供任何额外的证书,因为链的根是可信的。
如果你能向我解释发生了什么以及如何让它发挥作用,我会很高兴的。请不要发布仅忽略证书的变通方法,因为这是用于生产并且必须是安全的。
答案 0 :(得分:2)
我写了一篇博文,其中包括一个完整的工作示例,前后有关如何做到这一点。见http://chariotsolutions.com/blog/post/https-with-client-certificates-on/