【问题标题】:Android SSL trust chain with intermediate certificates (Apache HttpClient 4.X)带有中间证书的 Android SSL 信任链 (Apache HttpClient 4.X)
【发布时间】:2012-10-30 20:22:28
【问题描述】:

我正在尝试使用 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 不应该由链验证 - 我不需要提供任何额外的证书,因为链的根是受信任的。

如果您能向我解释发生了什么事以及如何让它发挥作用,我会很高兴。请不要发布忽略证书的解决方法,因为这是用于生产并且必须是安全的。

【问题讨论】:

    标签: java android ssl certificate apache-httpclient-4.x


    【解决方案1】:

    我写了一篇博客文章,其中包括一个完整的工作示例,关于如何做到这一点。见http://chariotsolutions.com/blog/post/https-with-client-certificates-on/

    (Code from that blog post on GitHub)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-31
      • 2011-02-21
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-29
      相关资源
      最近更新 更多