Назад | Перейти на главную страницу

Apache2 mod_ssl пропадает после случайного периода времени

При использовании довольно типичной / стандартной установки 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 просто плохо работает, посмотрите версию, есть ли у нее какая-либо репутация с ошибками и т. Д.

Также это могло быть из-за дорожного движения .. Это все, что я мог думать сейчас ..