我正在編寫一個需要SSL客戶端身份驗證的Android應用程序。我知道如何爲桌面Java應用程序創建JKS密鑰庫,但Android僅支持BKS格式。每次這樣,我一直在努力,創建以下錯誤密鑰庫結果:
handling exception: javax.net.ssl.SSLHandshakeException: null cert chain
如何創建包含客戶端證書鏈的BKS(BouncyCastle)格式Java Keystore
所以它看起來像客戶端發送從來沒有一個適當的證書鏈,可能是因爲我沒有正確創建密鑰庫。我無法啓動SSL調試,就像我可以在dekstop上一樣,所以這使得這比應該更困難。
僅供參考以下是努力創造一個BKS 信任命令:
keytool -importcert -v -trustcacerts -file "cacert.pem" -alias ca -keystore "mySrvTruststore.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "bcprov-jdk16-145.jar" -storetype BKS -storepass testtest
這裏是我試過,是不是努力創造一個BKS客戶端的命令密鑰庫:
cat clientkey.pem clientcert.pem cacert.pem > client.pem
keytool -import -v -file <(openssl x509 -in client.pem) -alias client -keystore "clientkeystore" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "bcprov-jdk16-145.jar" -storetype BKS -storepass testtest
認真沒有人有BKS格式的經驗?唉,爲什麼Android不能使用標準的JKS格式,或者至少要記錄這種格式,因爲它們都支持它?這應該很簡單... – 2010-11-07 23:46:10