如何生成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