Есть несколько важных моментов, которые стоит поправить и учесть. А также — список необходимых модулей 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>