【发布时间】:2016-01-01 07:29:47
【问题描述】:
在 Android 上使用 HttpsUrlConnection,如果我使用不受信任的证书(很可能是自签名证书)连接到服务器,我会收到错误消息。 例如,当浏览器中发生类似情况时,我仍然可以选择接受该证书。
- 计划是正常运行 URL 连接。
- 如果出现证书错误,请使用 Dummy “trust all”重新运行它 设置,当然仍然会尽快断开连接 已收到证书(在 X509TrustManager 和 然后是 HostNameVerifier)。在 HostNameVerifier 中返回 false 这个技巧做得很好。
- 询问用户是否真的要使用此证书。
现在,我如何将此证书添加到应用程序的存储区,以便下次连接到该服务器时使用它?
或者我是否需要自己编写 X509TrustManager/HostNameVerifier,并将传入的证书数据与存储的数据进行比较,同时保持所有 CA 签名证书的正常功能。
换句话说。
- 从服务器检索公共证书(完成)
- 询问用户是否仍要使用它。
- 将该公共证书导入应用自己的商店中某处,以供将来连接使用。
- 回退到所有 CA 受信任证书的常规信任链。
因为我已经看到所有其他问题都提出了类似的问题,人们开始提供所有错误的解决方案。我确实不想要 AcceptAllVerifier。我可以不使用任何需要我手动导入证书的东西。
【问题讨论】:
标签: android ssl httpsurlconnection