配置要在Android中安装的CA证书

时间:2015-01-23 02:04:24

标签: android ssl openssl ssl-certificate ca

我有一个针对网络的自定义SSL根CA,我希望能够在Android设备上安装它。如果我下载它会说"没有要安装的证书"。如何配置证书以使用openSSL或其他工具?我做了一些谷歌搜索,一些网站说我应该将它转换为.pfx但这涉及给用户我的私钥并破坏安全性。

1 个答案:

答案 0 :(得分:0)

如果您要将证书添加到Android KeyChain(可以从ICS开始),您需要提供X509Certificate(。crt,.pem等)或PKCS12(。pfx)文件。

您必须从KeyChain班级调用安装意图。

根据文件:http://developer.android.com/reference/android/security/KeyChain.html#createInstallIntent()

  

返回可用于凭据安装的Intent。该   意图可以在没有任何额外的情况下使用,在这种情况下用户将是   能够从他们自己的来源安装凭证。

     

或者,可以使用EXTRA_CERTIFICATE或EXTRA_PKCS12来指定   X.509证书或PKCS#12密钥存储区的字节   安装。这些额外内容可与EXTRA_NAME结合使用   正在安装的凭据的默认别名。

     

当与startActivityForResult(Intent,int)一起使用时,RESULT_OK将是   如果成功安装了凭证,则返回,否则返回   将返回RESULT_CANCELED。

<强>然而

在我看来,您真正想要做的是将X509Certificate与您的应用程序一起包含在内,这样您就可以在没有用户知识的情况下建立安全的SSL连接,这将适用于所有设备。

为了做到这一点,您必须创建将X509Certificate放入应用程序(作为PEM字符串,.crt文件.der文件或BouncyCastle KeyStore内)并初始化SSLContext用它。完成后,您可以获得SSLSocketFactory,您可以使用http客户端。

更多相关信息: https://developer.android.com/training/articles/security-ssl.html