Как создать формат BKS (BouncyCastle) Хранилище ключей Java, содержащее цепочку сертификатов клиента

Я пишу приложение для Android, которое требует аутентификации клиента SSL. Я знаю, как создать хранилище ключей JKS для настольного приложения Java, но Android поддерживает только формат BKS. Каждый способ, которым я пытался создать хранилище ключей, приводил к следующей ошибке:
исключение обработки: javax.net.ssl.SSLHandshakeException: null цепочка сертификатов

Таким образом, похоже, что клиент никогда не отправляет правильную цепочку сертификатов, вероятно, потому, что я неправильно создаю хранилище ключей. Я не могу включить отладку SSL, как на настольном компьютере, поэтому это делает это намного сложнее, чем должно быть.

Для справки ниже приведена команда, которая работает для создания хранилища доверенных сертификатов BKS ]:
keytool -importcert -v -trustcacerts -file "cacert.pem" -alias ca -keystore "mySrvTruststore.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -provider -jdarkprovider -jdarkprovider -path16 "-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
51
задан Ben Baron 10 September 2018 в 14:22
поделиться