gpt4 book ai didi

android - 在 Android 中使用 DefaultHttpClient 提示用户接受自签名 SSL

转载 作者:可可西里 更新时间:2023-11-01 16:38:09 25 4
gpt4 key购买 nike

我正在开发连接到 Microsoft Exchange 的 Android 4.0 应用程序。

目前,我在处理自签名证书时遇到困难,因为它们刚刚被拒绝。我在 SO 上尝试了很多解决方案,构建了新的 SocketFactories 和 TrustManagers,但它们都没有提供真正的解决方案。

理想情况下,我想提示用户通知他们无法验证 SSL 证书,如果他们接受,我想下载所提供的证书,存储它并将其用于下一次连接。或者类似于这个过程的东西(比如 Firefox 的 SSL 异常(exception)列表)

不幸的是,我发现的唯一示例依赖于使用命令行工具将证书安装到设备上的 TrustStore 中。当客户下载它时,这无济于事。我只想要一个简单的接受/拒绝对话框。

我可以盲目地信任所有 SSL 证书,但我宁愿做一些稍微更安全的事情。

谁能给我指出正确的方向?我想做的事有可能吗?如果无法完成接受/拒绝,那么盲目接受自签名证书是我能做到的最好办法。

谢谢,汤姆

最佳答案

在 android ICS 中有 KeyChain class您可以在其中存储其他受信任的证书。

您的软件可以做类似的事情:

  1. 创建专用 X509TrustManager为了处理未知的服务器证书(参见 X509TrustManager.checkServerTrusted 方法)
  2. 当服务器证书未知时,创建一个 Intent 以提示用户使用 KeyChain.createInstallIntent() 安装证书

证书应该可用于 future 的连接。

关于android - 在 Android 中使用 DefaultHttpClient 提示用户接受自签名 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19973232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com