Httpd apache sunucusu için JKS dosyasından .key ve .crt dosyası nasıl oluşturulur


19

Yalnızca mycert.jks dosyam var . Şimdi ayıklamak ve .key ve .crt dosyası oluşturmak ve apache httpd sunucusunda kullanmak gerekiyor.

SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt 
SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key 

Herkes bunu yapmak için tüm adımları listeleyebilir. Araştırdım ama anlayacak, karıştıracak ve eşleşecek somut bir örnek yok.

Lütfen önerin!

[EDIT] Aşağıdaki yanıttan sonraki adımları uyguladıktan sonra hata alıyorsunuz.

8/‎21/‎2015 9:07 PM] Sohan Bafna: 
    [Fri Aug 21 15:32:03.008511 2015] [ssl:emerg] [pid 14:tid 140151694997376] AH02562: Failed to configure certificate 0.0.0.0:4545:0 (with chain), check /home/certs/smp_c
    ert_key_store.crt
    [Fri Aug 21 15:32:03.008913 2015] [ssl:emerg] [pid 14:tid 140151694997376] SSL Library Error: error:0906D06C:PEM routines:PEM_read_bio:no start line (Expecting: TRUSTED
     CERTIFICATE) -- Bad file contents or format - or even just a forgotten SSLCertificateKeyFile?
    [Fri Aug 21 15:32:03.008959 2015] [ssl:emerg] [pid 14:tid 140151694997376] SSL Library Error: error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib 

Yanıtlar:


29

.jks bir Java deposu olan anahtar deposu

Java'dan keytool ikili dosyasını kullanın .

.crt dosyasını dışa aktarın :

keytool -export -alias mydomain -file mydomain.der -keystore mycert.jks

sertifikayı PEM'e dönüştürün :

openssl x509 -inform der -in mydomain.der -out certificate.pem

anahtarı dışa aktar :

keytool -importkeystore -srckeystore mycert.jks -destkeystore keystore.p12 -deststoretype PKCS12

şifrelenmemiş PEM'in konser PKCS12 anahtarı :

openssl pkcs12 -in keystore.p12  -nodes -nocerts -out mydomain.key

kredi:


Çalışmıyor, hata alıyorum
— Sohan

dışa aktarılan sertifika DER biçimindedir. PEM dönüştürmek için bir adım ekledi
— exeral

thnx, bu işe yaramadı henüz denemedim
— Sohan

keytool -exportcert -rfcPEM biçiminde yazar ve dönüştürmeye gerek yoktur. Alternatif olarak, p12'ye sahip olduğunuzda, openssl pkcs12 -nokeystüm sertifika zincirini PEM'de yazar; bu sertifika, anahtar aracı varsayılan otomatik olarak imzalanan sertifika yerine gerçek bir CA'dan geliyorsa, OpenSSL (httpd gibi) kullanan bir sunucu için genellikle daha iyidir.
— dave_thompson_085

1
not: Dışa aktarma sırasında adın ne olduğunu biliyorsanız, Takma ad sertifikanın adı olabilir. İnsanların ilk komutu yürütmek için mücadele etmeleri durumunda bahsetmek istedim.
— GM Lucid

19

İşte yaptığım şey,

İlk önce anahtarı dışa aktarın:

keytool -importkeystore -srckeystore mycert.jks -destkeystore keystore.p12 -deststoretype PKCS12

Apache ssl sertifika dosyası için sadece sertifikaya ihtiyacınız vardır:

openssl pkcs12 -in keystore.p12 -nokeys -out my_key_store.crt

SSL anahtar dosyası için sadece anahtarlara ihtiyacınız vardır:

openssl pkcs12 -in keystore.p12 -nocerts -nodes -out my_store.key


0

Burada cevap bulundu:

/programming/7580508/getting-chrome-to-accept-self-signed-localhost-certificate?page=2&tab=Votes

Windows'ta Chrome'da jks anahtar deposu dosyasından crt oluşturmayı gösterdi:

  • kırmızı çizgiyle jks kullanan tarayıcıdaki url'ye gidin ve solda bir kilit sembolü olacaktır

  • güvenli olmayan kısmı tıkladığınızda bilgi iletişim kutusu açılır

  • sertifikaya tıklayın (geçersiz) ve açıldığında Ayrıntılar'a tıklayın

  • dosyaya kopyala'ya basın ... ve talimatları izleyin

Sonunda crt anahtar deposu dosyası var

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.