SORU
17 Mart 2009, Salı


Dönüştürme bir Java PEM formatına Deposu

PEM dosyası keytool ve openssl applicactions kullanarak Java anahtar deposu dosyasını dönüştürmek için çalışıyorum. Ama dönüşüm yapmak için iyi bir yol bulamadım. Herhangi bir fikir?

PEM içine doğrudan deposu dönüştürmek yerine PKCS12 dosyası oluşturun ve sonra ilgili PEM dosyası ve anahtar Deposu haline dönüştürmeye çalıştım. Ama onları kullanarak bir bağlantı kurmak olamazdı. (Sadece PEM dosyası ve güvenli bir bağlantı uygulamak için bir anahtar Deposu dosyasını gerektiğini unutmayın. Gibi kısıtlama yok "java anahtar deposu dosyası Başlat". :) Yani diğer formatları itibaren benim durumumda kabul edilebilir)

Ama pem için piç doğrudan dönüştürme yöntemi tercih edilir.

CEVAP
18 Mart 2009, ÇARŞAMBA


Oldukça basit, en azından jdk6 kullanarak

bash$ keytool -keystore foo.jks -genkeypair -alias foo \
        -dname 'CN=foo.example.com,L=Melbourne,ST=Victoria,C=AU'
Enter keystore password:  
Re-enter new password: 
Enter key password for 
        (RETURN if same as keystore password):  
bash$ keytool -keystore foo.jks -exportcert -alias foo | \
       openssl x509 -inform der -text
Enter keystore password:  asdasd
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1237334757 (0x49c03ae5)
        Signature Algorithm: dsaWithSHA1
        Issuer: C=AU, ST=Victoria, L=Melbourne, CN=foo.example.com
        Validity
            Not Before: Mar 18 00:05:57 2009 GMT
            Not After : Jun 16 00:05:57 2009 GMT
        Subject: C=AU, ST=Victoria, L=Melbourne, CN=foo.example.com
        Subject Public Key Info:
            Public Key Algorithm: dsaEncryption
            DSA Public Key:
                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
Enter destination keystore password:  
Re-enter new password: 
Enter source keystore password:  
Entry for alias foo successfully imported.
Import command completed:  1 entries successfully imported, 0 entries failed or cancelled

bash$ openssl pkcs12 -in foo.p12 -out foo.pem
Enter Import Password:
MAC verified OK
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:

bash$ openssl x509 -text -in foo.pem
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1237334757 (0x49c03ae5)
        Signature Algorithm: dsaWithSHA1
        Issuer: C=AU, ST=Victoria, L=Melbourne, CN=foo.example.com
        Validity
            Not Before: Mar 18 00:05:57 2009 GMT
            Not After : Jun 16 00:05:57 2009 GMT
        Subject: C=AU, ST=Victoria, L=Melbourne, CN=foo.example.com
        Subject Public Key Info:
            Public Key Algorithm: dsaEncryption
            DSA Public Key:
                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
read DSA key
Enter PEM pass phrase:
Private-Key: (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:



Size sonuna kadar:

  • foo.piç - java formatında deposu.
  • foo.p12 - AMAÇ içinde deposu#12 formatında.
  • foo.pem - PEM biçiminde deposundan anahtarları ve sertifikaları.

(Bu son dosya eğer istersen anahtarları ve sertifikaları ayrılabilir.)


Komut özeti - oluşturmak için anahtar deposu PİÇ:

keytool -keystore foo.jks -genkeypair -alias foo \
    -dname 'CN=foo.example.com,L=Melbourne,ST=Victoria,C=AU'

Komut özeti - PKCS#12 anahtar deposu, PEM dosyasına: sonra PİÇ deposu haline dönüştürmek

keytool -importkeystore -srckeystore foo.jks \
   -destkeystore foo.p12 \
   -srcstoretype jks \
   -deststoretype pkcs12

openssl pkcs12 -in foo.p12 -out foo.pem

senin PİÇ birden fazla sertifika deposu var, ve sertifika ve anahtar isimlerinden birisi ile ilişkili vermek istiyorsanız, aşağıdaki varyasyon 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 - PİÇ karşılaştırmak için dosya PEM için anahtar deposu:

keytool -keystore foo.jks -exportcert -alias foo | \
   openssl x509 -inform der -text

openssl x509 -text -in foo.pem

openssl dsa -text -in foo.pem

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Evan Coury

    Evan Coury

    29 NİSAN 2007
  • Visual Life

    Visual Life

    3 Temmuz 2006
  • World Science Festival

    World Scienc

    1 Mayıs 2008