Điều này khá đơn giản, sử dụng jdk6 ít nhất ...
bash $ keytool -keystore foo.jks -genkey Pair -alias foo \
-Name 'CN = foo.example.com, L = Melbourne, ST = Victoria, C = AU'
Nhập mật khẩu kho khóa:
Nhập lại mật khẩu mới:
Nhập mật khẩu chính cho
(TRẢ LẠI nếu giống như mật khẩu lưu trữ khóa):
bash $ keytool -keystore foo.jks -exportcert -alias foo | \
openssl x509 -inform der -text
Nhập mật khẩu kho khóa: asdasd
Chứng chỉ:
Dữ liệu:
Phiên bản: 3 (0x2)
Số sê-ri: 1237334757 (0x49c03ae5)
Thuật toán chữ ký: dsaWithSHA1
Tổ chức phát hành: C = AU, ST = Victoria, L = Melbourne, CN = foo.example.com
Hiệu lực
Không phải trước: 18 tháng 3 00:05:57 2009 GMT
Không phải sau: 16 tháng 6 00:05:57 2009 GMT
Chủ đề: C = AU, ST = Victoria, L = Melbourne, CN = foo.example.com
Thông tin khóa công khai:
Thuật toán khóa công khai: dsaEncoding
Khóa công khai DSA:
quán rượu:
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
Nhập mật khẩu kho khóa đích:
Nhập lại mật khẩu mới:
Nhập mật khẩu kho khóa nguồn:
Nhập cho bí danh foo nhập thành công.
Đã hoàn thành lệnh nhập: 1 mục nhập thành công, 0 mục không thành công hoặc bị hủy
bash $ openssl pkcs12 -in foo.p12 -out foo.pem
Nhập mật khẩu nhập:
MAC xác minh OK
Nhập cụm từ PEM:
Xác minh - Nhập cụm từ PEM:
bash $ openssl x509 -text -in foo.pem
Chứng chỉ:
Dữ liệu:
Phiên bản: 3 (0x2)
Số sê-ri: 1237334757 (0x49c03ae5)
Thuật toán chữ ký: dsaWithSHA1
Tổ chức phát hành: C = AU, ST = Victoria, L = Melbourne, CN = foo.example.com
Hiệu lực
Không phải trước: 18 tháng 3 00:05:57 2009 GMT
Không phải sau: 16 tháng 6 00:05:57 2009 GMT
Chủ đề: C = AU, ST = Victoria, L = Melbourne, CN = foo.example.com
Thông tin khóa công khai:
Thuật toán khóa công khai: dsaEncoding
Khóa công khai DSA:
quán rượu:
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
đọc khóa DSA
Nhập cụm từ PEM:
Khóa riêng: (1024 bit)
riêng tư:
00: 8f: b1: af: 55: 63: 92: 7c: d2: 0f: e6: f3: a2: f5: ff:
1a: 7a: phong: 8c: 39: đ
quán rượu:
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:
Bạn kết thúc với:
- foo.jks - kho khóa ở định dạng java.
- foo.p12 - kho khóa ở định dạng PKCS # 12.
- foo.pem - tất cả các khóa và certs từ kho khóa, ở định dạng PEM.
(Tập tin cuối cùng này có thể được chia thành các khóa và chứng chỉ nếu bạn muốn.)
Tóm tắt lệnh - để tạo kho khóa JKS:
keytool -keystore foo.jks -genkeypair -alias foo \
-dname 'CN=foo.example.com,L=Melbourne,ST=Victoria,C=AU'
Tóm tắt lệnh - để chuyển đổi kho khóa JKS thành kho khóa PKCS # 12, sau đó thành tệp PEM:
keytool -importkeystore -srckeystore foo.jks \
-destkeystore foo.p12 \
-srcstoretype jks \
-deststoretype pkcs12
openssl pkcs12 -in foo.p12 -out foo.pem
nếu bạn có nhiều chứng chỉ trong kho khóa JKS của mình và bạn chỉ muốn xuất chứng chỉ và khóa được liên kết với một trong các bí danh, bạn có thể sử dụng biến thể sau:
keytool -importkeystore -srckeystore foo.jks \
-destkeystore foo.p12 \
-srcalias foo \
-srcstoretype jks \
-deststoretype pkcs12
openssl pkcs12 -in foo.p12 -out foo.pem
Tóm tắt lệnh - để so sánh kho khóa JKS với tệp 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