web-dev-qa-db-ja.com

keytoolで証明書をPKCS12キーストアに作成する方法は?

Keytoolプログラムを使用して、証明書をPKCS12キーストア形式に作成したかった。

キーストアの拡張子は.pfx

どうすればこれを達成できますか?

キーストアがPKCS12タイプ(.pfx)の場合、-storetype PKCS12(読みやすくするために改行を追加)で指定する必要があります。

keytool -genkey -alias <desired certificate alias> 
    -keystore <path to keystore.pfx>
    -storetype PKCS12 
    -keyalg RSA 
    -storepass <password> 
    -validity 730 
    -keysize 2048 

質問のキーへの追加の回答。

JDK 8(1.8.0_121-b1)では、-storetype pkcs12を削除しても例外は発生しませんが、keytoolは代わりにJKSキーストアを作成します、および.pfx拡張子は無視されます。

また、keytoolがPKCS12をサポートしていない-keypass mykeypasswordを要求します。

%Java_HOME%/bin/keytool -genkeypair -alias mykey -keyalg EC -dname "cn=CN, ou=OU, o=O, c=C" -validity 365 -keystore keystore.pfx -keypass mykeypassword -storepass mystorepassword -v

(translated)
Generating keypair (Type EC, 256 Bit) and self-signed certificate (SHA256withECDSA) with a validity of 365 days
    for: CN=CN, OU=OU, O=O, C=C
[keystore.pfx saved]

内容をリストします。

%Java_HOME%/bin/keytool -list -keystore keystore.pfx -storepass mystorepassword 

(translated)
Keystore-Type: JKS
Keystore-Provider: Sun

Keystore contains 1 entry.

mykey, 25.04.2017, PrivateKeyEntry,
Certificate-Fingerprint (SHA1): A1:6C:5F:8F:43:37:1A:B6:43:69:08:DE:6B:B9:4D:DB:05:C9:D5:84

Javaキーストアです。

次の問題は、キーストアを-storetype pkcs12するときに-listを指定しても、キーツールはストアをJKSキーストアとして表示することです。

それを試してみましょう:

%Java_HOME%/bin/keytool -genkeypair -alias mykey -keyalg EC -dname "cn=CN, ou=OU, o=O, c=C" -validity 365 -storetype pkcs12 -keystore keystore.pkx -keypass mykeypassword -storepass mystorepassword -v

(translated)
Warning: No support for different keystore and key password for PKCS12 keystores. The value of -keypass will be ignored.
Generating keypair (Type EC, 256 Bit) and self signed certificate (SHA256withECDSA) with a validity of 365 Days
        für: CN=CN, OU=OU, O=O, C=C
[keystore.pkx saved]

次に、内容をリストします。

%Java_HOME%/bin/keytool -list -keystore keystore.pkx -storepass mystorepassword

(translated)
Keystore-Type: JKS // ??
Keystore-Provider: Sun

Keystore contains 1 entry

mykey, 25.04.2017, PrivateKeyEntry,
Certificate Fingerprint (SHA1): EA:C2:36:C6:55:69:CB:32:22:C7:14:83:67:47:D2:7E:06:8E:13:14
1
aliopi