JKS形式のキーストアからPKCS #8形式の秘密鍵とPEM形式のX.509証明書を取り出す

通常、APKファイルの署名にはJKS形式のキーストアを使う。一方、Androidプラットフォームのビルド時にAPKファイルへ署名するときは、PKCS #8形式の秘密鍵とPEM形式のX.509証明書が必要になる。次のようにすると、JKSキーストアから必要なファイルへ変換することができる。


$ keytool -importkeystore -srckeystore keystore -destkeystore keystore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcalias alias -destalias alias -noprompt
$ openssl pkcs12 -in keystore.p12 -out keystore.pem
$ openssl pkcs8 -topk8 -in keystore.pem -outform DER -out privatekey.pk8
$ openssl x509 -inform PEM -in keystore.pem -outform PEM -out cert.x509.pem
$ signapk cert.x509.pem privatekey.pk8 unsigned.apk signed.apk