我正试图用Apache的HttpClient 4.X从一个安卓应用程序中查询一个HTTPS网站。我得到了一个javax.net.ssl.SSLPeerUnverifiedException: No peer certificate异常。在进口证书时,我遵循了不同的说明:
这些都不适合我。
我认为我的问题是该网站的证书链如下:
Telekom 2包含在安卓默认密钥存储库(/system/etc/security/cacerts.bks)中。我在我自己的手机上查过了。
现在的问题是,我必须将哪些证书包含在定制的keystore中,所有指令都告诉我要提供哪些证书?只有中间产物?只有网站吗?两者都有?我也需要根证书吗?不应该由链验证Site's certificate -我不需要提供任何额外的证书,因为链的根是可信的。
如果你能向我解释一下发生了什么事,以及我怎样才能让这件事奏效,我会很高兴的。请不要发布忽略证书的解决方案,因为这是用于生产的,并且必须是安全的。
发布于 2013-05-12 23:26:58
我写了一篇博客文章,包括一段时间前关于如何做到这一点的完整的工作示例。请参阅http://chariotsolutions.com/blog/post/https-with-client-certificates-on/
https://stackoverflow.com/questions/13326302
复制相似问题