这是我第一次处理Android中的证书,而这正是我想要做的。服务器将公共CA证书,Exchange用户证书和Wifi用户证书发送到设备。虽然我能够使用用户证书,但我仍然对如何信任CA证书感到茫然。这仅适用于我的应用而不是整个手机(手机没有root,应用不是系统应用)。我能够使用
安装CA证书 Intent intent = KeyChain.createInstallIntent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra( KeyChain.EXTRA_CERTIFICATE, cert.getEncoded() );
intent.putExtra(KeyChain.EXTRA_NAME, "MyCACert");
现在我的问题是我可以以编程方式静默安装/信任CA证书吗?如果有,怎么样?如果不是我的其他问题KeyChain API仅来自4.3?如何在旧版本上做同样的事情?我试图关注here和here上的帖子。但是所有这些都在处理覆盖默认的trustmanager或SSLFactory。我不明白它对我想要实现的目标有何帮助。请帮忙。任何帮助/方向将不胜感激。
我也从上面的链接尝试了这个,但我不知道他们在做什么。
TrustManagerFactory tmf;
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(null,null);
keyStore.setCertificateEntry("CA", cert);
tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(keyStore);
X509Certificate[] chain = new X509Certificate[]{cert};
SSLContext context = SSLContext.getInstance("TLS");
context.init(null, tmf.getTrustManagers(), null);
HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());