【问题标题】:Symantec Certificate not found on Android在 Android 上找不到赛门铁克证书
【发布时间】:2016-03-31 16:34:16
【问题描述】:

我有一个 Android 应用程序试图将 HTTPS 请求发送到具有 Symantec Class 3 Secure Server CA - G4 签名证书的服务器。 当尝试通过 apache http 库发送请求时(我想这对于其他 HTTP 客户端也是如此)抛出一个异常,指出“没有对等证书”。对 iOS 上相同服务器的相同请求工作正常,即使我连接到 chrome 中的服务器,在我正在测试的同一台 Android 设备上运行,它表示证书非常好。

现在我听说 Google 放弃了对某些赛门铁克证书的信任,但据我所知,只有那些具有 1024 位密钥的证书。有问题的那个是用 2048 位密钥签名的。而且 Chrome 也接受!

我还发现这篇文章 [1] 说我需要将完整的钥匙串导入为 BouncyCastle 钥匙库。这里的问题是,每个用户都指定他们自己服务器的 url,管理他们自己的证书。

所以我的问题是:有人熟悉这个问题并知道解决方法吗?我发现无数指南向我展示了如何为请求关闭证书验证......但这对我来说不是一个有效的解决方案。

[1]http://blog.antoine.li/2010/10/22/android-trusting-ssl-certificates/

【问题讨论】:

    标签: java android security ssl symantec


    【解决方案1】:

    我实际遇到的问题是服务器需要 HTTP 客户端上的 SNI(服务器名称指示)支持。 Androids 版本的 apache http 库不支持 SNI。所以我不得不编写自己的 SSLSocketFactory 来支持它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多