AndroidまたはBouncyCastleライブラリを使用してCA署名付きX509クライアント証明書から証明書チェーン情報を抽出できますか?
信頼できるサーバーからCA署名付きX509証明書を受信するAndroidクライアントがあります。署名されたクライアント証明書と秘密鍵をPKCS12(.p12)ファイルに保存したいと思います。私は現在、KeyStore
オブジェクトを作成し、証明書と秘密鍵を追加することによってこれを行っています。PrivateKey
メソッドを使用してクライアントを追加するとKeyStore.setKeyEntry()
、aCertificate[] chain
が最後の引数になり、現在はクライアント証明書のみが含まれています。これにより、CA証明書が含まれていないため、証明書を検証できなくなりCertificate[] chain
ますか?はいの場合、署名されたものから抽出された情報を証明書チェーンに入力することは可能X509Certificate
ですか?
ほとんどの例は、PEMファイルまたはBKSトラストストアからCAチェーンをロードするか、すでに証明書のリストにアクセスできるようです。
これが私が持っているものです:
X509Certificate cert; // signed client cert
PrivateKey pkey; // client private key
String password;
KeyStore store;
store = KeyStore.getInstance("PKCS12", "BC");
store.load(null, null);
// adding the signed cert
store.setCertificateEntry("Client certificate", cert);
// creating the cert chain
X509Certificate[] chain = new X509Certificate[1];
chain[0] = cert;
// add rest of the certs in the chain here
// adding the private key
store.setKeyEntry("Client private key", pkey, password.toCharArray(), chain);
FileOutputStream fos;
fos = openFileOutput("clientCredentials.p12", Context.MODE_PRIVATE);
store.store(fos, password.toCharArray());
fos.flush();
fos.close();
前もって感謝します!