2013-01-17 39 views

Trả lời

14

Nếu keystore là loại pkcs12 (.pfx), bạn phải xác định nó với -storetype PKCS12:

keytool -genkey -alias {desired alias certificate} -keystore {path to keystore.pfx} -storepass {password} -validity 365 -keyalg RSA -keysize 2048 -storetype pkcs12 
+0

Chìa khóa của câu hỏi là nếu keystore có phần mở rộng pfx bạn phải thêm các tùy chọn pkcs12 -storetype Without tùy chọn này keytool ném một lỗi. –

0

câu trả lời bổ sung cho chủ chốt của câu hỏi.

Với JDK 8 (1.8.0_121-b13) bạn không nhận được một ngoại lệ nếu bạn loại bỏ -storetype pkcs12 nhưng keytool tạo ra một keystore JKS thay vào đó, và phần mở rộng .pfx được bỏ qua.

Nó cũng yêu cầu một số -keypass mykeypasswordkeytool không hỗ trợ cho PKCS12.

%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] 

Danh sách các nội dung:

%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 

Bạn thấy đó là một keystore Java.

Vấn đề tiếp theo là, ngay cả khi bạn chỉ định -storetype pkcs12 khi bạn -list kho khóa, công cụ khóa sẽ vẫn hiển thị cửa hàng dưới dạng kho khóa JKS!

Hãy thử rằng:

%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] 

Bây giờ danh sách các nội dung:

%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 
Các vấn đề liên quan