Есть несколько важных моментов, которые стоит поправить и учесть. А также — список необходимых модулей Apache.


✅ Что делает конфигурация

  • Создаёт виртуальный хост на порту 80 для tolerate.ru
  • Создаёт SSL-хост на порту 443, но с ошибкой: указан syoma.ru:443, а ServerNametolerate.ru
  • Использует сертификаты Let’s Encrypt
  • Включает RewriteEngine, но не задаёт правила

⚠️ Ошибки и рекомендации

  1. Несоответствие имени хоста <VirtualHost syoma.ru:443> ServerName tolerate.rusyoma.ru:443 должно быть *:443, если вы обслуживаете tolerate.ru: <VirtualHost *:443>
  2. Отсутствие SSLEngine on — Без этой строки SSL не активируется: SSLEngine on
  3. Нет правил RewriteRuleRewriteEngine on включён, но нет ни одного правила. Например, для редиректа с HTTP на HTTPS можно добавить: RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

🔌 Необходимые модули Apache

Чтобы эта конфигурация работала корректно, должны быть включены следующие модули:

МодульНазначениеКоманда включения
sslПоддержка HTTPSsudo a2enmod ssl
rewriteПеренаправления и ЧПУsudo a2enmod rewrite
headersРабота с заголовками (если используешь RequestHeader)sudo a2enmod headers
http2 (опционально)Поддержка HTTP/2sudo a2enmod http2

После включения модулей:

sudo systemctl restart apache2

💡 Итоговая правка конфигурации

<VirtualHost *:80>
    ServerName tolerate.ru
    ServerAdmin root@skil.su
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    RewriteEngine on
    RewriteCond %{HTTPS} off
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName tolerate.ru
    ServerAdmin root@skil.su
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/tolerate.ru/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/tolerate.ru/privkey.pem

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
</IfModule>

От alex

Обучаемый.