Створіть самопідписаний сертифікат SSL для apache


10

Я хочу створити самопідписаний сертифікат для веб-сайту. Старий сертифікат минув кілька днів тому. У системах розміщено більше одного NameVirtualHosts. Команди, які я використовую для створення сертифіката, взяті з одного веб-сайту підручника і є:

openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr 
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Після цього у файлі ssl.conf я вказав у розділі VirtualHost разом зі старими налаштуваннями інших адміністраторів

SSLEngine on
SSLCertificateFile <full_path>/server.crt
SSLCertificateKeyFile <full_path>/server.key

При запуску сервера я отримую наступні повідомлення в лог-файлі, і сервер не запускається.

У файлі error_log повідомлення є

 [Mon Jun 01 23:52:46 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

У файлі ssl_error_log є повідомлення

 [Mon Jun 01 23:52:46 2009] [error] Init: Private key not found
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218710120 error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218734605 error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib

Я дуже вдячний, якщо хтось може пояснити, як це вирішити. Я спробував кілька інших веб-сайтів підручників щодо самопідписаних сертифікатів SSL, але жоден із кроків, про які вони згадують, не працює.

Відповіді:


21

Використовуйте цей один вкладиш для створення сертифіката та ключа в одному файлі

openssl req -new -x509 -days 999 -nodes -out apache.pem -keyout apache.pem

Тоді єдина необхідна вам конфігурація

SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem

ви маєте на увазі додати вище рядка sslengine на та sslcertificatefile / etc / ssh
Rajat

це для конфігурації apache, а не ssh.
hayalci

1
Ця команда залишить приватний ключ прозорим у файловій системі, на відміну від оригінальної команди ОП. Пропустивши -nodesопцію, зашифруйте ключ за допомогою Triple-DES. (Кожна парольна фраза ключа, безумовно, повинна бути надана щоразу, коли сервер запускається.) Команда OpenSSL reqне підтримує генерацію більш сильно зашифрованих ключів, але може використовувати раніше створені сильно зашифровані ключі.
Calrion


0

Ви можете використовувати openssl req -newkey rsa:1024 -keyout privkey.pemдля збереження SSL-ключа під час його генерування, якщо генерація ключів не зовсім правильна.

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