感觉就像我已经搜索了整个网络,但我发现的只是关于如何自动接受无效或自签名证书的提示。(使用自定义-我已经开始工作了。)HttpClient
SSLSocketFactory
但是我想要我的应用程序是用户得到一个类似浏览器的对话框,询问类似“你真的要信任这个服务器吗?在这里,看看它的证书。” (但前提是证书不受默认检查的信任。)
然后证书应该放在应用程序的证书存储中,以便下次自动接受。
所以我需要知道的是:
- 如何下载特定主机/端口组合的证书(链)(以便能够向用户显示)?
- 如何以某种方式存储证书以便我
KeyStore
以后可以加载它?
这是我在应用程序中计划的工作流程:
- 使用我的自定义向服务器发送请求
HttpClient
。可能证书受系统信任或已在我的商店中(如果是,请转到 4)。 - 如果请求因 SSL 问题而失败,请向用户显示证书并询问是否信任此连接。
- 如果用户选择信任,则将证书存储在我的商店中并转到 1。
- 万岁,连接即可使用。
所以有人知道怎么做吗?