Создайте самоподписанный сертификат 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
hayalci
источник
Вы имеете в виду добавить строку выше sslengine и sslcertificatefile / etc / ssh
Раджат
это для настройки apache, а не ssh.
Хаялчи
1
Эта команда оставит закрытый ключ открытым в файловой системе, в отличие от исходной команды OP. Отказ от -nodesопции шифрования ключа с использованием Triple-DES. (Разумеется, пароль необходимо указывать при каждом запуске сервера.) Команда OpenSSL reqне поддерживает генерацию ключей с более сильным шифрованием, но может использовать ранее созданные ключи с сильным шифрованием.
Калрион
4

Это может показаться немного тривиальным, но проверьте разрешение вашего файла .key

Джефф Хенгесбах
источник
+1 Иногда о тривиальных вещах думают меньше всего.
Буркхард
0

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

davenpcj
источник