1. 程式人生 > >如何生成android的BKS證書

如何生成android的BKS證書

        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