Android中的信任证书颁发机构

时间:2015-02-13 21:32:02

标签: java android ssl certificate truststore

这是我第一次处理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?如何在旧版本上做同样的事情?我试图关注herehere上的帖子。但是所有这些都在处理覆盖默认的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());

0 个答案:

没有答案