如何在Android上为SSL套接字启用自签名证书?
我有一个自签名服务器证书(cert.pem),需要为Android应用程序中的SSL套接字启用它。理想情况下,我想将代码打包为.jar文件,而不需要外部证书文件(即将其包含在代码中)。如何在Android上为SSL套接字启用自签名证书?
有了这个代码,我可以接受所有证书,这是不是我想要的:
SSLContext sc = SSLContext.getInstance("TLS"); sc.init(null, new TrustManager [] { new MyTrustManager() }, new SecureRandom());
我需要的证书添加到自定义的KeyManager或定制的TrustManager?我遇到
一个问题是,Android不接受JKS密钥(KeyStore.getDefaultType()返回 “BKS”): “ java.security.KeyStoreException:密钥库JKS实施找不到”
任何想法如何进行将高度赞赏!
回答:
是的,您需要将证书添加到自定义KeyStore。它基本上是一个4步过程:
- 获取您的服务器证书。
- 将服务器证书作为应用程序中的原始资源导入密钥库。 KeyStore类型必须是BKS。
- 在您的Java/Android程序中创建您自己的TrustManager以将证书加载到SSLContext中。
- 将SSLContext用于您的SSL连接。
请参阅此链接的详细说明和示例代码:
http://randomizedsort.blogspot.com/2010/09/step-to-step-guide-to-programming.html
好运。
Nehc
以上是 如何在Android上为SSL套接字启用自签名证书? 的全部内容, 来源链接: utcz.com/qa/258070.html