6

感觉就像我已经搜索了整个网络,但我发现的只是关于如何自动接受无效或自签名证书的提示。(使用自定义-我已经开始工作了。)HttpClientSSLSocketFactory

但是我想要我的应用程序是用户得到一个类似浏览器的对话框,询问类似“你真的要信任这个服务器吗?在这里,看看它的证书。” (但前提是证书不受默认检查的信任。)

然后证书应该放在应用程序的证书存储中,以便下次自动接受。

所以我需要知道的是:

  • 如何下载特定主机/端口组合的证书(链)(以便能够向用户显示)?
  • 如何以某种方式存储证书以便我KeyStore以后可以加载它?

这是我在应用程序中计划的工作流程:

  1. 使用我的自定义向服务器发送请求HttpClient。可能证书受系统信任或已在我的商店中(如果是,请转到 4)。
  2. 如果请求因 SSL 问题而失败,请向用户显示证书并询问是否信任此连接。
  3. 如果用户选择信任,则将证书存储在我的商店中并转到 1。
  4. 万岁,连接即可使用。

所以有人知道怎么做吗?

4

1 回答 1

0

尝试连接到非 CA 证书时,请勿禁用 CA 检查并捕获异常。当您捕获异常时,启动您的页面以供用户接受/拒绝。如果他接受,则在禁用 CA 检查的情况下启动新连接。

于 2014-02-20T23:32:46.687 回答