Android Keytool秘钥生成

keytool -import  -alias server -file certs/server.cer -keystore server_trust.keystore -storepass [证书秘钥0cbe***********************e4372]  -keystore client.keystore -storetype BKS -providername "BC"

keytool -importkeystore -v -srckeystore certs/client.p12 -srcstoretype pkcs12 -srcstorepass [文件秘钥] -destkeystore client.keystore -deststoretype BKS -providername "BC"  -deststorepass [证书秘钥0cbe***********************e4372]

===Android使用keystore证书===

Android不能直接使用java自带的JKS(sun)生成keystore使用,必须借助BouncyCastle库生成BKS,参考http://www.jianshu.com/p/9b400e863ce3

JKS和JCEKS是Java密钥库(KeyStore)的两种比较常见类型,JKS的Provider是SUN,在每个版本的JDK中都有。

BKS来自BouncyCastleProvider,它使用的也是TripleDES来保护密钥库中的Key,它能够防止证书库被不小心修改(Keystore的keyentry改掉1个bit都会产生错误),BKS能够跟JKS互操作。

需要配置jdk支持库

在%JDK_Home%\jre\lib\security\java.security文件下配置根据:

security.provider.=,则加入Bouncy Castle加密组件的

增进BouncyCastleProvider

security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider

最后,需要将bcprov-ext-dk15on-147.jar导入到%JRE_Home%\lib\ext即可

http://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html

===线上问题解决===

现象:使用bcprov-jdk15on-155.jar版本的bcprov生成的keystore在android系统版本<=4.1时会出现Wrong version of key store.错误,导致无法访问服务器

解决:需要 使用bcprov-jdk15-1.46.jar版本替换bcprov-jdk15on-155.jar版本,经过降低版本后生成的keystore验证正常

===服务端生成p12===

openssl pkcs12 -export -clcerts -inkey client/client.key.pem -in certs/client.cer -out certs/client.p12

你可能感兴趣的:(Android Keytool秘钥生成)