少なくともjdk6を使用すると、かなり簡単です...
bash $ keytool -keystore foo.jks -genkeypair -alias foo \
-dname 'CN = foo.example.com、L = Melbourne、ST = Victoria、C = AU'
キーストアのパスワードを入力してください:
新しいパスワードを再入力してください:
のキーパスワードを入力してください
(キーストアのパスワードと同じ場合はRETURN):
bash $ keytool -keystore foo.jks -exportcert -alias foo | \
openssl x509 -inform der -text
キーストアのパスワードを入力してください:asdasd
証明書:
データ:
バージョン:3(0x2)
シリアル番号:1237334757(0x49c03ae5)
署名アルゴリズム:dsaWithSHA1
発行者:C = AU、ST =ビクトリア、L =メルボルン、CN = foo.example.com
有効
前に:2009年3月18日00:05:57 GMT
後ではない:6月16日00:05:57 2009 GMT
件名:C = AU、ST =ビクトリア、L =メルボルン、CN = foo.example.com
件名の公開鍵情報:
公開鍵アルゴリズム:dsaEncryption
DSA公開鍵:
パブ:
00:e2:66:5c:e0:2e:da:e0:6b:a6:aa:97:64:59:14:
7e:a6:2e:5a:45:f9:2f:b5:2d:f4:34:27:e6:53:c7:
bash $ keytool -importkeystore -srckeystore foo.jks \
-destkeystore foo.p12 \
-srcstoretype jks \
-deststoretype pkcs12
宛先キーストアのパスワードを入力してください:
新しいパスワードを再入力してください:
ソースキーストアのパスワードを入力してください:
エイリアスfooのエントリが正常にインポートされました。
インポートコマンドが完了しました:1エントリが正常にインポートされ、0エントリが失敗またはキャンセルされました
bash $ openssl pkcs12 -in foo.p12 -out foo.pem
インポートパスワードを入力:
MAC検証済みOK
PEMパスフレーズを入力:
確認中-PEMパスフレーズを入力してください:
bash $ openssl x509 -text -in foo.pem
証明書:
データ:
バージョン:3(0x2)
シリアル番号:1237334757(0x49c03ae5)
署名アルゴリズム:dsaWithSHA1
発行者:C = AU、ST =ビクトリア、L =メルボルン、CN = foo.example.com
有効
前に:2009年3月18日00:05:57 GMT
後ではない:6月16日00:05:57 2009 GMT
件名:C = AU、ST =ビクトリア、L =メルボルン、CN = foo.example.com
件名の公開鍵情報:
公開鍵アルゴリズム:dsaEncryption
DSA公開鍵:
パブ:
00:e2:66:5c:e0:2e:da:e0:6b:a6:aa:97:64:59:14:
7e:a6:2e:5a:45:f9:2f:b5:2d:f4:34:27:e6:53:c7:
bash $ openssl dsa -text -in foo.pem
DSAキーを読み取る
PEMパスフレーズを入力:
秘密鍵:(1024ビット)
priv:
00:8f:b1:af:55:63:92:7c:d2:0f:e6:f3:a2:f5:ff:
1a:7a:fe:8c:39:dd
パブ:
00:e2:66:5c:e0:2e:da:e0:6b:a6:aa:97:64:59:14:
7e:a6:2e:5a:45:f9:2f:b5:2d:f4:34:27:e6:53:c7:
あなたは次のようになります:
- foo.jks-Java形式のキーストア。
- foo.p12-PKCS#12形式のキーストア。
- foo.pem-PEM形式の、キーストアからのすべてのキーと証明書。
(この最後のファイルは、必要に応じてキーと証明書に分割できます。)
コマンドの概要-JKSキーストアを作成するには:
keytool -keystore foo.jks -genkeypair -alias foo \
-dname 'CN=foo.example.com,L=Melbourne,ST=Victoria,C=AU'
コマンドの概要-JKSキーストアをPKCS#12キーストアに変換し、次にPEMファイルに変換します。
keytool -importkeystore -srckeystore foo.jks \
-destkeystore foo.p12 \
-srcstoretype jks \
-deststoretype pkcs12
openssl pkcs12 -in foo.p12 -out foo.pem
JKSキーストアに複数の証明書があり、1つのエイリアスに関連付けられた証明書とキーのみをエクスポートする場合は、次のバリエーションを使用できます。
keytool -importkeystore -srckeystore foo.jks \
-destkeystore foo.p12 \
-srcalias foo \
-srcstoretype jks \
-deststoretype pkcs12
openssl pkcs12 -in foo.p12 -out foo.pem
コマンドの概要-JKSキーストアをPEMファイルと比較するには:
keytool -keystore foo.jks -exportcert -alias foo | \
openssl x509 -inform der -text
openssl x509 -text -in foo.pem
openssl dsa -text -in foo.pem