Як генерувати .key та .crt файл з файлу JKS для сервера httpd apache


19

У мене є лише файл mycert.jks . Тепер мені потрібно витягнути та генерувати .key та .crt файл та використовувати його на сервері apache httpd.

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

Хтось може перелічити всі кроки, щоб виконати це. Я шукав, але немає конкретного прикладу, щоб зрозуміти, змішані та відповідні кроки.

Будь ласка, підкажіть!

[EDIT] Отримання помилки після виконання наведених нижче кроків відповіді.

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 

Відповіді:


29

.jks - це магазин брелоків, що є предметом Java

використовувати двійковий файл keytool від Java.

експортуйте .crt :

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

конвертувати cert в PEM :

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

експортуйте ключ :

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

ключ PKCS12 для концерту для незашифрованого PEM :

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

кредити:


Не працює, отримує помилку
Sohan

експортований cert - формат DER. додав крок, щоб перетворити його на PEM
exeral

Thnx, що може працювати я не пробував ще хоча
Сохан

keytool -exportcert -rfcпише у форматі PEM і не потребує перетворення. Альтернативно, коли у вас є p12, openssl pkcs12 -nokeysзаписується весь ланцюг cert в PEM, що, як правило, краще для сервера, що використовує OpenSSL (наприклад, httpd), якщо цей cert є з справжнього CA, а не самопідписаного cert-сертифікату за замовчуванням keytool.
dave_thompson_085

1
Примітка. Псевдонім може бути назвою сертифіката, якщо ви знаєте, як це було під час експорту. Хотів зазначити, що у випадку, коли люди намагаються виконати першу команду.
GM Lucid

19

Ось що я роблю,

Спочатку експортуйте ключ:

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

Для файлу сертифіката apache ssl потрібен лише сертифікат:

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

Для файлу ключів ssl вам потрібні лише ключі:

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


0

Тут знайдено відповідь:

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

Тут показано, як створити crt з файлу зберігання ключів jks в Chrome у Windows:

  • перейдіть до URL-адреси браузера, який використовує jks з червоною лінією, і зліва буде символ блокування

  • натиснувши на незахищену частину, відкриється діалогове вікно інформації

  • натисніть на сертифікат (недійсний), а коли він відкриється, натисніть на Деталі

  • натисніть на копію, щоб подати файл ... і дотримуйтесь інструкцій

В кінці у вас є файл зберігання ключів у crt

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.