如何在Android上启用SSL套接字的自签名证书?

我有一个自签名的服务器证书(cert.pem),需要在Android应用程序中为SSL套接字启用它。 理想情况下,我想将代码打包为.jar文件,而不需要外部证书文件(即将其包含在代码中)。

有了这个代码,我可以接受所有证书,这不是我想要的:

SSLContext sc = SSLContext.getInstance("TLS"); sc.init(null, new TrustManager [] { new MyTrustManager() }, new SecureRandom()); 

我是否需要将证书添加到自定义KeyManager或自定义TrustManager?

我遇到的一个问题是,Android不接受JKS密钥库(KeyStore.getDefaultType()返回“BKS”):“ java.security.KeyStoreException:KeyStore JKS实现未find

任何想法如何进行将不胜感激!

Solutions Collecting From Web of "如何在Android上启用SSL套接字的自签名证书?"

是的,您需要将证书添加到自定义KeyStore。 这基本上是一个四步骤的过程:

  1. 获取您的服务器证书。
  2. 将服务器证书作为应用程序中的原始资源导入密钥库。 KeyStoretypes必须是BKS。
  3. 在Java / Android程序中创build自己的TrustManager,将证书加载到SSLContext中。
  4. 使用该SSLContext进行SSL连接。

有关详细说明和示例代码,请参阅此链接:
http://randomizedsort.blogspot.com/2010/09/step-to-step-guide-to-programming.html

祝你好运。
Nehc