如何生成android的BKS证书

来源:互联网 发布:亩和平方米精准算法 编辑:程序博客网 时间:2024/05/19 19:59

        Android中要求使用BC证书,而java的keytool本身并不提供BKS证书,因此需要额外的辅助操作进行证书生成。

       (1)下载 bcprov-ext-jdk15on-146.jar,且将该文件放到jdk_home\jre\lib\ext目录下  

                 注:别的版本会出现证书版本号不对的异常

        (2)在 jdk_home\jre\lib\security\目录中找到 java.security 在内容增加一行
                 security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider

提供两种方式生成BKS的Android证书

第一种

step1:keytool -genkeypair -v -alias test -keystore xx.keystore -storepass 1234567 -storetype BKS -providername "BC" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "BouncyCastleProvider/bcprov-jdk16-145.jar"
指定provider 、providerpath 不然会报错:
java.security.NoSuchProviderException: no such provider: BC

step2:
keytool -export -keystore xx.keystore -storepass 1234567 -storetype BKS -file xx.cer  -alias test -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "BouncyCastleProvider/bcprov-jdk16-145.jar"

指定provider 、providerpath 不然会报错:
keytool错误: java.security.KeyStoreException: BKS not found

第二种

step1:生成服务器端证书

           keytool -genkey -alias test -keystore test.jks  
step2: 将keystore中的cert导出,用来生成客户端的验证证书
           keytool -exportcert -alias test -file test.cert -keystore test.jks

step3: keytool -importcert -keystore test.bks -file test.cert -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider


0 0