Android 证书问题,求指导,万分感谢。
报错提示:java.io.IOException: Wrong version of key store
在代码中加入了证书验证,建立SSL通道,代码如下:
SSLContext ctx = SSLContext.getInstance("TLS");
KeyManagerFactory kmf = KeyManagerFactory.getInstance("X509");
TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509");
KeyStore kks = KeyStore.getInstance("BKS");
KeyStore tks = KeyStore.getInstance("BKS");
kks.load(aContext.getAssets().open("push.keystore"), "123456".toCharArray());
tks.load(aContext.getAssets().open("push.bks"), "123456".toCharArray());
kmf.init(kks, "123456".toCharArray());
tmf.init(tks);
ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
return ctx.getSocketFactory();
JDK 版本是java version "1.6.0_25"
为了生成BKS证书文件,采取了如下操作:
1.下载 bcprov-ext-jdk15on-146.jar,复制到C:\Program Files\Java\jdk1.6.0_43\jre\lib\ext
2.配置bcprov,在 jdk_home\jre\lib\security\目录中找到 java.security 在内容增加一行
security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider
3.生成android平台的证书
keytool -importcert -keystore test.bks -file test.cert -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider
不知道是不是JDK版本和bcprov-ext-jdk15on-146.jar的版本是不是不对应
纠结了好久了,望大神指点,多谢多谢!!!