Сбой Apache 2.4.9 после включения модуля ssl и настройки сертификата ssl

Apache выдает следующие ошибки после попытки установить ssl-сертификаты:

[ssl:emerg] [pid 30907] AH02572: Failed to configure at least one certificate and key for localhost:443
[ssl:emerg] [pid 30907] SSL Library Error: error:140A80B1:SSL routines:SSL_CTX_check_private_key:no certificate assigned
[ssl:emerg] [pid 30907] AH02312: Fatal error initialising mod_ssl, exiting.

Я использовал MAC OS: Yosemite, PHP 5.5.20, Apache 2.4.9

и выполнили эти шаги, чтобы сгенерировать мой сертификат SSL из
(http://www.akadia.com/services/ssh_test_certificate.html)

cd /etc/apache2/
sudo mkdir certs
cd certs
sudo openssl genrsa -des3 -out server.key 1024
sudo openssl req -new -key server.key -out server.csr

Country Name (2 letter code) [GB]:US
State or Province Name (full name) [Berkshire]:California
Locality Name (eg, city) [Newbury]:LA
Organization Name (eg, company) [My Company Ltd]:Company
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:dev.test.local
Email Address []:username@gmail.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

sudo cp server.key server.key.org
sudo openssl rsa -in server.key.org -out server.key
sudo openssl x509 -req -days 730 -in server.csr -signkey server.key -out server.crt

Далее у меня есть следующие настройки для моих файлов конфигурации apache:

и т.д. / apache2 / httpd.conf:

LoadModule ssl_module libexec/apache2/mod_ssl.so
LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
Include /private/etc/apache2/extra/httpd-ssl.conf

и т.д. / apache2 / дополнительные / HTTPD-ssl.conf:

Listen 443
SSLPassPhraseDialog  builtin
<VirtualHost _default_:443>
SSLEngine on
Mutex sysvsem default # Added after seeing mutex issues for apache 2.4, http://stackoverflow.com/questions/13969272/apache-sslmutex-issue

и т.д. / apache2 / дополнительные / HTTPD-vhosts.conf:

<VirtualHost *:443>

ServerName dev.test.local
DocumentRoot "/Users/username/Sites/test/public"
<Directory "/Users/username/Sites/test/public">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

SSLEngine on
SSLCertificateFile    /etc/apache2/certs/server.crt
SSLCertificateKeyFile /etc/apache2/certs/server.key

</VirtualHost>

После перезапуска и запуска теста конфигурации Apache все выглядит так, будто проблем нет:

sudo apachectl restart
sudo apachectl configtest
[Tue Jan 06 13:56:01.480270 2015] [so:warn] [pid 31636] AH01574: module php5_module is already loaded, skipping
Syntax OK

Помощь очень ценится, и я рад предоставить больше информации, если это необходимо.

6

Решение

Я столкнулся с той же проблемой.
Теперь я решил это.

Вы включены

/private/etc/apache2/extra/httpd-ssl.conf

в httpd.conf.

Поэтому вам все еще нужно установить следующие ключи в ‘httpd-ssl.conf’

SSLCertificateFile "path to your crt"SSLCertificateKeyFile "path to your key"

Надеюсь, это полезно.

3

Другие решения

У меня были те же ошибки после обновления до Apache 2.4.33. Кажется, что SSLCertificateFile а также SSLCertificateKeyFile теперь должны быть внутри <VirtualHost> блок, тогда как раньше они этого не сделали.

2

Я столкнулся с этим только сегодня после обновления до MacOS High Sierra версии 10.13.6.
Мои виртуальные хосты с SSL работали нормально до обновления.
Затем сегодня, когда я попытался запустить свой веб-сервер Apache, я получил эту ошибку:

[Fri Jul 20 10:51:06.021778 2018] [ssl:emerg] [pid 2236] AH02572: Failed to configure at least one certificate and key for work.localweb.com:80
[Fri Jul 20 10:51:06.022024 2018] [ssl:emerg] [pid 2236] SSL Library Error: error:140A80B1:SSL routines:SSL_CTX_check_private_key:no certificate assigned
[Fri Jul 20 10:51:06.022037 2018] [ssl:emerg] [pid 2236] AH02312: Fatal error initialising mod_ssl, exiting.
AH00016: Configuration Failed

Проверьте мою версию Apache, и теперь это 2.4.33.
Очевидно, в этой версии вам нужно будет поместить записи SSLCertificateFile и SSLCertificateKeyFile в сам виртуальный хост.
Итак, я скопировал записи из extra / httpd-ssl.conf и поместил их на каждый виртуальный хост SSL, который я настроил.

<VirtualHost *:443>
ServerAdmin me@mymail.com
ServerName work.localweb.com
SSLCertificateFile "/private/etc/apache2/server.crt"SSLCertificateKeyFile "/private/etc/apache2/server.key"......
</VirtualHost>

Тогда запуск работает снова.

2

Я столкнулся с этой проблемой после обновления до Apache 2.4.33.

Мне пришлось <VirtualHost></VirtualHost> блоки в моем файле httpd-vhosts.conf. Я удалил это:

<VirtualHost *:443>
ServerName "<your server name>"DocumentRoot "<your path>"</VirtualHost>

перезапустил apache и все заработало.

0

У меня тоже была такая же проблема. В моем случае я также просто включил extra / httpd-ssl.conf, как упоминали некоторые другие.
Как сказано выше, убедитесь, что у вас есть записи в этом файле для

SSLCertificateFile «/usr/local/etc/apache24/ssl.crt/mydomaincertificate.crt»

SSLCertificateKeyFile «/usr/local/etc/apache24/ssl.key/myprivatekey.key»

Хотя те же самые записи находятся в extra / httpd-vhosts.conf для моего основного домена.
Я также должен был убедиться, что в httpd.conf запись «ServerName» соответствует имени в сертификате.

Несмотря на то, что этот параметр не используется, он может быть полезен для тех, кто, как я, ищет эту ошибку после настройки SSL

0