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.