Cara menghasilkan file .key dan .crt dari file JKS untuk server httpd apache


19

Saya hanya memiliki file mycert.jks . Sekarang saya perlu mengekstrak dan menghasilkan file .key dan .crt dan menggunakannya di server httpd apache.

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

Adakah yang bisa mendaftar semua langkah untuk menyelesaikan ini? Saya mencari tetapi tidak ada contoh konkret untuk memahami, mencampur dan mencocokkan langkah-langkah.

Tolong sarankan!

[EDIT] Mendapat kesalahan setelah mengikuti langkah-langkah dari jawaban di bawah ini.

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 

Jawaban:


29

.jks adalah keystore, yang merupakan hal Java

gunakan keytool binary dari Java.

ekspor .crt :

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

ubah sertifikat ke PEM :

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

ekspor kunci :

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

kunci konser PKCS12 untuk PEM tidak terenkripsi :

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

kredit:


Tidak berfungsi, mendapatkan kesalahan
Sohan

sertifikat yang diekspor adalah format DER. menambahkan langkah untuk mengubahnya ke PEM
exeral

thnx, itu mungkin berhasil saya belum mencoba
Sohan

keytool -exportcert -rfcmenulis dalam format PEM dan tidak perlu konversi. Atau begitu Anda memiliki p12, openssl pkcs12 -nokeystulis seluruh rantai sertifikat dalam PEM, yang biasanya lebih baik untuk server yang menggunakan OpenSSL (seperti httpd) jika sertifikat ini dari CA nyata daripada sertifikat yang ditandatangani sendiri keytool-default.
dave_thompson_085

1
Catatan: Alias ​​dapat menjadi nama sertifikat, jika Anda tahu apa namanya saat diekspor. Ingin mengatakan bahwa kalau-kalau orang berjuang untuk menjalankan perintah pertama.
GM Lucid

19

Inilah yang saya lakukan,

Pertama-tama ekspor kuncinya:

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

Untuk file sertifikat apache ssl, Anda hanya memerlukan sertifikat:

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

Untuk file kunci ssl, Anda hanya perlu kunci:

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


0

Ditemukan jawaban di sini:

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

Itu menunjukkan cara membuat crt dari file jks keystore di Chrome pada Windows:

  • buka url di browser yang menggunakan jks dengan garis merah dan akan ada simbol kunci di sebelah kiri

  • dengan mengklik pada bagian yang tidak aman, dialog informasi terbuka

  • klik pada sertifikat (tidak valid) dan ketika terbuka klik pada Detail

  • tekan salin ke file ... dan ikuti instruksi

Pada akhirnya Anda memiliki file keystore di crt

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.