我有一个定制的SSL,我希望能够在android设备上安装它。如果我下载它,上面写着“没有安装证书”。如何使用openSSL或其他工具配置证书以工作?我已经做了一些谷歌和一些网站说,我应该把它隐藏到一个.pfx,但这涉及给用户我的私钥和破坏安全。
发布于 2015-01-29 11:36:48
如果您想要将您的证书添加到Android KeyChain (可能是因为ICS),则需要提供X509Certificate (.crt、.pem等)或PKCS12 (.pfx)文件。
您必须从KeyChain类调用安装意图。
根据文档:http://developer.android.com/reference/android/security/KeyChain.html#createInstallIntent()
返回可用于凭据安装的意图。该意图可以在没有任何附加条件的情况下使用,在这种情况下,用户将能够从自己的源安装凭据。 或者,EXTRA_CERTIFICATE或EXTRA_PKCS12可能用于指定X.509证书或PKCS#12密钥存储区的字节以供安装。这些附加程序可以与EXTRA_NAME结合,为正在安装的凭据提供默认别名。 当与startActivityForResult(意图,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
https://stackoverflow.com/questions/28101919
复制相似问题