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

配置要在Android中安装的CA证书,android,ssl,openssl,ssl-certificate,ca,Android,Ssl,Openssl,Ssl Certificate,Ca,我有一个用于web的自定义SSL根CA,我希望能够在android设备上安装它。如果我下载它,它会说没有要安装的证书。如何使用openSSL或其他工具配置证书?我做了一些谷歌搜索,一些网站说我应该把它转换成一个.pfx,但这涉及到给用户我的私钥,破坏了安全性。如果你想将你的证书添加到Android密钥链中,可能因为ICS你需要提供X509Certificate.crt、.pem等或PKCS12.pfx文件 您必须从KeyChain类调用install intent 根据文件: 返回可用于凭据安装

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

如果你想将你的证书添加到Android密钥链中,可能因为ICS你需要提供X509Certificate.crt、.pem等或PKCS12.pfx文件

您必须从KeyChain类调用install intent

根据文件:

返回可用于凭据安装的目的。这个 意图可以在没有任何额外内容的情况下使用,在这种情况下,用户将 能够从自己的源安装凭据

或者,可以使用EXTRA_证书或EXTRA_PKCS12来指定 的X.509证书或PKCS12密钥存储的字节 安装这些额外费用可与额外的_名称相结合,以提供 正在安装的凭据的默认别名

当与startActivityForResultIntent、int一起使用时,将显示结果_OK 如果成功安装凭据,则返回,否则返回 将返回已取消的结果

然而

在我看来,您真正想要做的是在应用程序中包含X509证书,这样您就可以在用户不知情的情况下建立安全的SSL连接,这将在所有设备上运行

为了做到这一点,您必须将X509证书作为PEM字符串、.crt文件.der文件或BouncyCastle密钥库创建并放入应用程序中,然后用它初始化SSLContext。完成此操作后,您可以获得SSLSocketFactory,您可以在http客户端上使用它

有关这方面的更多信息: