我的 Android 应用需要支持通过 TLS 连接到不受信任的服务器。我通过安装一个自定义来处理这个问题,该自SSLSocketFactory
定义X509TrustManager
显示一个对话框,要求用户确认连接。我还通过覆盖WebViewClient
的onReceivedSslError
回调来处理这个问题(这导致了这个问题)。
这些X509Certificate
s 只是公钥,因此它们是否以明文形式存储并不重要。但是,有没有我可以存放它们的地方,以便系统会自动为我处理验证?现在,我只是将它们放入 aSet<String>
SharedPreferences
并检查我收到的任何不受信任的证书Set<String>
。理想情况下,有一种方法可以将它们放入默认信任库,然后在用户注销时将它们从默认信任库中清除。