Sto scrivendo un'app Android che richiede l'autenticazione client SSL. So come creare un keystore JKS per un'applicazione Java desktop, ma Android supporta solo il formato BKS. Ogni modo in cui ho cercato di creare i risultati keystore il seguente errore:
handling exception: javax.net.ssl.SSLHandshakeException: null cert chain
Come creare un keystore Java in formato BKS (BouncyCastle) contenente una catena di certificati client
Quindi sembra che il cliente non è mai l'invio di una catena di certificati corretta, probabilmente perché non sto creando il keystore correttamente. Non riesco ad abilitare il debug SSL come posso sul dekstop, quindi è molto più difficile di quanto dovrebbe essere.
Per riferimento il seguente è il comando che sta lavorando per creare un BKS truststore:
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
Ecco il comando che ho provato che non funziona per creare un client BKS chiavi:
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
Seriamente nessuno ha esperienza con il formato BKS? Argh, perché Android non poteva usare solo il formato standard di JKS, o almeno documentare questo formato dal momento che è tutto ciò che supporta? Questo dovrebbe essere semplice ... –