Я пишу приложение для Android, для которого требуется аутентификация клиента SSL. Я знаю, как создать хранилище JKS для настольного приложения Java, но Android поддерживает только формат BKS. Каждый способ, которым я пытался создать хранилище ключей, приводит к следующей ошибке: handling exception: javax.net.ssl.SSLHandshakeException: null cert chain
Итак, похоже, что клиент никогда не отправляет правильную цепочку сертификатов, возможно, потому, что я не создаю хранилище ключей должным образом. Я не могу включить отладку 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 keystore:
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