При использовании довольно типичной / стандартной установки Apache в Ubuntu с включенным mod_ssl каждые «так часто» (случайный период времени) веб-сайт на сервере перестает отвечать.
Пытаясь понять почему, я заметил, что /etc/apache2/mods-enabled/ssl.conf
и ssl.load
не хватает. Используя эти две команды, я могу немедленно восстановить веб-сайт:
a2enmod ssl
service apache2 restart
Это бесит! Где-то должен быть конфликт, но я не могу понять где.
Ubuntu 14.04 LTS Apache 2.4.7
Файл конфигурации виртуального хоста (/etc/apache2/sites-enabled/my-domain.org.conf)
<IfModule mod_ssl.c>
<VirtualHost xxx.xxx.xxx.xxx:443>
ServerName my-domain.org
ServerAlias www.my-domain.org
ServerAdmin null@foo.tld
DocumentRoot /var/www/my-domain.org
SSLEngine on
SSLCertificateKeyFile /etc/letsencrypt/live/my-domain.org/privkey.pem
SSLCertificateFile /etc/letsencrypt/live/my-domain.org/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/my-domain.org/chain.pem
CustomLog /var/log/apache2/my-domain.org/ssl_access_log vhost_combined
ErrorLog /var/log/apache2/my-domain.org/ssl_error_log
<Directory /var/www/my-domain.org>
Options -ExecCGI -Indexes -Includes +FollowSymLinks
AllowOverride FileInfo AuthConfig
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^/(.*)$ https://%1/$1 [R=301,L]
php_admin_flag engine on
php_admin_flag display_startup_errors on
php_admin_flag display_errors on
php_admin_flag html_errors on
php_admin_flag log_errors on
php_admin_flag ignore_repeated_errors off
php_admin_flag ignore_repeated_source off
php_admin_flag report_memleaks on
php_admin_flag track_errors on
php_value memory_limit 32M
</Directory>
</VirtualHost>
</IfModule>
Вывод журнала из /var/log/apache2/my-domain.org/ssl_error_log
:
[13:35:29.822335] [mpm_prefork:notice] [pid 2043] AH00169: caught SIGTERM, shutting down
[13:35:30.867258] [auth_digest:notice] [pid 2725] AH01757: generating secret for digest authentication ...
[13:35:30.896369] [mpm_prefork:notice] [pid 2725] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.21 OpenSSL/1.0.1f configured -- resuming normal operations
[13:35:30.896406] [core:notice] [pid 2725] AH00094: Command line: '/usr/sbin/apache2'
Кажется, там нет ничего плохого.
Let's Encrypt устанавливает себя с автоматической проверкой срока действия сертификата и попытками самообновления. Это было бы идеально, если бы работало. Однако скрипты будут работать правильно только в том случае, если они не обнаружат проблем / конфликтов Apache.
Изначально я попытался использовать автоматическую установку Let's Encrypt: certbot --apache
Он никогда не работал должным образом, поэтому я остановился на certbot certonly
. Независимо от процесса, он все еще пытался автоматизировать обновление сертификата и терпел неудачу. Я не совсем уверен, как все это работает, но вот исправление:
Найдите файл конфигурации домена по адресу /etc/letsencrypt/renewal/my-domain.org.conf
и все прокомментируйте. Я предполагаю, что автоматизированные процессы будут работать, если --apache
когда-либо получает свое действие. На данный момент мне не обязательно самообновление, так как это можно сделать вручную.
Я надеюсь, что это поможет кому-то. Это, безусловно, помогло мне.
Пожалуйста, предоставьте свои строки журнала непосредственно перед перезапуском.
Возможно, ваш журнал доступа SSL может находиться в другой папке. Также, если файл SSL.conf находится в подпапке, проверьте их права доступа в случае сбоя.
Вот некоторые базовые вещи, которые вы можете проверить. Иногда библиотека mod_ssl просто плохо работает, посмотрите версию, есть ли у нее какая-либо репутация с ошибками и т. Д.
Также это могло быть из-за дорожного движения .. Это все, что я мог думать сейчас ..