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, Ubuntusudo a2enmod sslsudo apache2ctl configtestsudo systemctl reload apache2
AlmaLinux, Rocky, CentOSsudo dnf install mod_sslsudo apachectl configtestsudo 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» значит, что файл читается.