Oldukça basit, en azından jdk6 kullanmak ...
bash $ keytool -keystore foo.jks -genkeypair -alias foo \
-dname 'CN = foo.example.com, L = Melbourne, ST = Victoria, C = AU'
Anahtar deposu şifresini girin:
Yeni şifreyi tekrar giriniz:
İçin anahtar şifresini girin
(Anahtar deposu şifresiyle aynıysa GERİ DÖN):
bash $ keytool -keystore foo.jks -exportcert -alias foo | \
openssl x509 -bilgi der -metin
Anahtar deposu şifresini girin: asdasd
Sertifika:
Veri:
Sürüm: 3 (0x2)
Seri Numarası: 1237334757 (0x49c03ae5)
İmza Algoritması: dsaWithSHA1
Sertifikayı Veren: C = AU, ST = Victoria, L = Melbourne, CN = foo.example.com
Geçerlilik
Daha Önce Değil: Mar 18 00:05:57 2009 GMT
Sonra Değil: 16 Haziran 00:05:57 2009 GMT
Konu: C = AU, ST = Victoria, L = Melbourne, CN = foo.example.com
Konu Genel Anahtar Bilgileri:
Genel Anahtar Algoritması: dsaEncryption
DSA Genel Anahtarı:
pub:
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
Hedef anahtar deposu şifresini girin:
Yeni şifreyi tekrar giriniz:
Kaynak anahtar deposu şifresini girin:
Foo takma adı girişi başarıyla içe aktarıldı.
İçe aktarma komutu tamamlandı: 1 giriş başarıyla içe aktarıldı, 0 giriş başarısız oldu veya iptal edildi
bash $ openssl pkcs12 -in foo.p12 -out foo.pem
Alma Parolasını Girin:
MAC doğrulandı, Tamam
PEM parolasını girin:
Doğrulanıyor - PEM parolasını girin:
bash $ openssl x509 -text -in foo.pem
Sertifika:
Veri:
Sürüm: 3 (0x2)
Seri Numarası: 1237334757 (0x49c03ae5)
İmza Algoritması: dsaWithSHA1
Sertifikayı Veren: C = AU, ST = Victoria, L = Melbourne, CN = foo.example.com
Geçerlilik
Daha Önce Değil: Mar 18 00:05:57 2009 GMT
Sonra Değil: 16 Haziran 00:05:57 2009 GMT
Konu: C = AU, ST = Victoria, L = Melbourne, CN = foo.example.com
Konu Genel Anahtar Bilgileri:
Genel Anahtar Algoritması: dsaEncryption
DSA Genel Anahtarı:
pub:
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 anahtarını oku
PEM parolasını girin:
Özel Anahtar: (1024 bit)
priv:
00: 8f: B1: af: 55: 63: 92: 7c: d2: 0f: e6: f3: a2: F5: ff:
1a: 7a: Fe: 8c: 39: dd
pub:
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:
Şunlarla sonuçlanırsınız:
- foo.jks - java formatında anahtar deposu.
- foo.p12 - PKCS # 12 biçiminde anahtar deposu.
- foo.pem - anahtar deposundaki tüm anahtarlar ve sertifikalar, PEM biçiminde.
(Bu son dosya, isterseniz anahtarlara ve sertifikalara bölünebilir.)
Komut özeti - JKS anahtar deposu oluşturmak için:
keytool -keystore foo.jks -genkeypair -alias foo \
-dname 'CN=foo.example.com,L=Melbourne,ST=Victoria,C=AU'
Komut özeti - JKS anahtar deposunu PKCS # 12 anahtar deposuna, ardından PEM dosyasına dönüştürmek için:
keytool -importkeystore -srckeystore foo.jks \
-destkeystore foo.p12 \
-srcstoretype jks \
-deststoretype pkcs12
openssl pkcs12 -in foo.p12 -out foo.pem
JKS anahtar deponuzda birden fazla sertifikanız varsa ve yalnızca takma adlardan biriyle ilişkili sertifika ve anahtarı dışa aktarmak istiyorsanız, aşağıdaki varyasyonu kullanabilirsiniz:
keytool -importkeystore -srckeystore foo.jks \
-destkeystore foo.p12 \
-srcalias foo \
-srcstoretype jks \
-deststoretype pkcs12
openssl pkcs12 -in foo.p12 -out foo.pem
Komut özeti - JKS anahtar deposunu PEM dosyasıyla karşılaştırmak için:
keytool -keystore foo.jks -exportcert -alias foo | \
openssl x509 -inform der -text
openssl x509 -text -in foo.pem
openssl dsa -text -in foo.pem