美文网首页
Android Keytool秘钥生成

Android Keytool秘钥生成

作者: 赵泓博 | 来源:发表于2020-04-08 14:38 被阅读0次
    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.<n>=<className>,则加入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秘钥生成

          本文链接:https://www.haomeiwen.com/subject/rxjtmhtx.html