我正在尝试使用 Apache 的 HttpClient 4.X 从 Android 应用程序查询 HTTPS 网站。我得到一个javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
例外。我按照不同的说明导入证书:
这些都不适合我。
我认为我的问题是该站点的证书链如下:
- 电信根 CA 2
- 中级甲
- 中级乙
- 站点证书
- 中级乙
- 中级甲
Telekom Root CA 2包含在Android 默认密钥库 ( /system/etc/security/cacerts.bks
) 中。我在用于测试的自己的手机上进行了检查。
现在的问题是,我必须在自定义密钥库中包含所有说明告诉我提供哪些证书?只是中间体?只有网站?两个都?我也需要根证书吗?不应该Site's certificate
由链验证 - 我不需要提供任何额外的证书,因为链的根是受信任的。
如果您能向我解释发生了什么以及如何使它发挥作用,我会很高兴。请不要发布忽略证书的解决方法,因为这是用于生产并且必须是安全的。