Есть несколько важных моментов, которые стоит поправить и учесть. А также — список необходимых модулей Apache.
✅ Что делает конфигурация
- Создаёт виртуальный хост на порту
80
дляtolerate.ru
- Создаёт SSL-хост на порту
443
, но с ошибкой: указанsyoma.ru:443
, аServerName
—tolerate.ru
- Использует сертификаты Let’s Encrypt
- Включает
RewriteEngine
, но не задаёт правила
⚠️ Ошибки и рекомендации
- Несоответствие имени хоста
<VirtualHost syoma.ru:443> ServerName tolerate.ru
—syoma.ru:443
должно быть*:443
, если вы обслуживаетеtolerate.ru
:<VirtualHost *:443>
- Отсутствие
SSLEngine on
— Без этой строки SSL не активируется:SSLEngine on
- Нет правил
RewriteRule
—RewriteEngine on
включён, но нет ни одного правила. Например, для редиректа с HTTP на HTTPS можно добавить:RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
🔌 Необходимые модули Apache
Чтобы эта конфигурация работала корректно, должны быть включены следующие модули:
Модуль | Назначение | Команда включения |
---|---|---|
ssl | Поддержка HTTPS | sudo a2enmod ssl |
rewrite | Перенаправления и ЧПУ | sudo a2enmod rewrite |
headers | Работа с заголовками (если используешь RequestHeader ) | sudo a2enmod headers |
http2 (опционально) | Поддержка HTTP/2 | sudo 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>