我有一个自签名服务器证书(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实现”< / p>
任何想法如何进行都将受到高度赞赏!
答案 0 :(得分:13)
是的,您需要将证书添加到自定义KeyStore。这基本上是一个分为四步的过程:
有关详细说明和示例代码,请参阅此链接:
http://randomizedsort.blogspot.com/2010/09/step-to-step-guide-to-programming.html