SSL на Apache: сертификат, ключ и виртуальный хост, коротко и с данными
Конспект страницы: 5 разделов коротко, данные на 19 октября 2026 и ответы на 4 вопроса. Полный разбор с примерами: SSL на Apache: сертификат, ключ и виртуальный хост.
Коротко
Главная / Установка / SSL на Apache SSL на Apache включается в виртуальном хосте порта 443: модуль mod_ssl, директива SSLEngine on и два пути, SSLCertificateFile к сертификату и SSLCertificateKeyFile к приватному ключу. С версии 2.4.8 промежуточные сертификаты кладут в тот же файл, что и ваш. В Apache на одном порту 443 нужно три директивы: SSLEngine on, SSLCertificateFile и SSLCertificateKeyFile.
Конспект по разделам
Как включить mod_ssl в Apache на Ubuntu и AlmaLinux
Шифрованием в Apache занимается модуль mod_ssl. Без него директивы SSL в конфиге вызовут ошибку «Invalid command SSLEngine». Тот же сценарий для Nginx устроен проще, там нет отдельного модуля: SSL на Nginx.
Как выглядит VirtualHost на порту 443 в Apache
Создайте файл сайта, например /etc/apache2/sites-available/example.com-ssl.conf на Debian или /etc/httpd/conf.d/example.com-ssl.conf на AlmaLinux, и опишите в нём порт 443. На Debian сайт после этого включают командой sudo a2ensite example.com-ssl.conf. В документации Apache сказано, что файл с ключом должен принадлежать root и читаться только им.
Куда в Apache класть промежуточные сертификаты
Браузеру нужен не только ваш сертификат, но и промежуточные, по которым он дойдёт до корневого. Где их указать, зависит от версии Apache. В документации директива SSLCertificateChainFile помечена устаревшей именно с версии 2.4.8.
Как перенаправить порт 80 на HTTPS в Apache
Для старых адресов с http:// оставьте виртуальный хост порта 80, который только переадресует посетителя. Директива Redirect permanent отдаёт код 301 и сохраняет путь запроса: адрес /blog/ откроется по https как https://example.com/blog/. Через.htaccess и для WordPress тот же результат даёт другая запись, она разобрана на странице редирект на https.
Какие команды нужны именно вашему серверу Apache
Пути и команды зависят от дистрибутива и от того, откуда сертификат. Ответьте на два вопроса. Два вопроса, и подсказка назовёт нужные команды и файлы После перезагрузки откройте сайт по https и проверьте срок и цепочку: как проверить SSL-сертификат.
Данные
| Система | Включение модуля | Проверка конфига | Применение |
|---|---|---|---|
| Debian, Ubuntu | sudo a2enmod ssl | sudo apache2ctl configtest | sudo systemctl reload apache2 |
| AlmaLinux, Rocky, CentOS | sudo dnf install mod_ssl | sudo apachectl configtest | sudo systemctl reload httpd |
| Версия | Что делать |
|---|---|
| 2.4.8 и новее | Дописать промежуточные в файл из SSLCertificateFile после вашего сертификата, от нижнего к корню |
| Старше 2.4.8 | Указать пакет промежуточных отдельной директивой SSLCertificateChainFile |
Данные на 19 октября 2026.
Вопросы и ответы
Какие директивы нужны для SSL на Apache?
Три: SSLEngine on, SSLCertificateFile с путём к сертификату и SSLCertificateKeyFile с путём к ключу. Все они стоят в блоке VirtualHost порта 443.
Нужна ли директива SSLCertificateChainFile в Apache 2.4?
Начиная с 2.4.8 нет: промежуточные сертификаты добавляют в файл из SSLCertificateFile, а директиву документация называет устаревшей.
Почему Apache просит пароль при запуске с SSL?
Приватный ключ защищён паролем. Apache запрашивает его на старте, поэтому для сервера выпускают ключ без пароля или снимают защиту командой openssl rsa с правами только для root.
Как проверить конфиг Apache перед перезагрузкой с SSL?
На Debian и Ubuntu командой apache2ctl configtest, на AlmaLinux и Rocky командой apachectl configtest. Ответ «Syntax OK» значит, что файл читается.