Главная/Установка/SSL на Apache
SSL на Apache: сертификат, ключ и виртуальный хост
SSL на Apache включается в виртуальном хосте порта 443: модуль mod_ssl, директива SSLEngine on и два пути, SSLCertificateFile к сертификату и SSLCertificateKeyFile к приватному ключу. С версии 2.4.8 промежуточные сертификаты кладут в тот же файл, что и ваш.
Ответ за 30 секунд
В Apache на одном порту 443 нужно три директивы: SSLEngine on, SSLCertificateFile и SSLCertificateKeyFile. Ключ с паролем не даст Apache стартовать без ввода этого пароля, поэтому для сервера ключ делают без него.
Бесплатный Let's Encrypt или платный от 1 000 ₽ за 6 месяцев на 19 октября 2026, выпуск от 15 минут.
Какие команды нужны именно вашему серверу Apache2.4.8версия, где цепочка в одном файле
3директивы: SSLEngine, файл и ключ
rootвладелец файла ключа
01 · 1 мин
Как включить mod_ssl в Apache на Ubuntu и AlmaLinux#
Шифрованием в Apache занимается модуль mod_ssl. Без него директивы SSL в конфиге вызовут ошибку «Invalid command SSLEngine».
| Система | Включение модуля | Проверка конфига | Применение |
|---|---|---|---|
| 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 |
Тот же сценарий для Nginx устроен проще, там нет отдельного модуля: SSL на Nginx.
02 · 1 мин
Как выглядит VirtualHost на порту 443 в Apache#
Создайте файл сайта, например /etc/apache2/sites-available/example.com-ssl.conf на Debian или /etc/httpd/conf.d/example.com-ssl.conf на AlmaLinux, и опишите в нём порт 443.
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
SSLEngine on
SSLCertificateFile /etc/ssl/example.com/fullchain.pem
SSLCertificateKeyFile /etc/ssl/example.com/example.com.key
</VirtualHost>
На Debian сайт после этого включают командой sudo a2ensite example.com-ssl.conf. В документации Apache сказано, что файл с ключом должен принадлежать root и читаться только им. Остальным пользователям сервера он не нужен.
Ключ с паролем остановит запуск
Если ключ зашифрован паролем, Apache запросит его при каждом старте и перезапуске, поэтому сервер не поднимется сам после перезагрузки машины. Для сервера используйте ключ без пароля и держите его в закрытом каталоге: как хранить приватный ключ.
03 · 1 мин
Куда в Apache класть промежуточные сертификаты#
Браузеру нужен не только ваш сертификат, но и промежуточные, по которым он дойдёт до корневого. Где их указать, зависит от версии Apache.
| Версия | Что делать |
|---|---|
| 2.4.8 и новее | Дописать промежуточные в файл из SSLCertificateFile после вашего сертификата, от нижнего к корню |
| Старше 2.4.8 | Указать пакет промежуточных отдельной директивой SSLCertificateChainFile |
В документации директива SSLCertificateChainFile помечена устаревшей именно с версии 2.4.8. Готовый fullchain.pem от Certbot уже собран в нужном порядке. Что такое цепочка и почему без неё ругаются телефоны: цепочка сертификатов.
04 · 1 мин
Как перенаправить порт 80 на HTTPS в Apache#
Для старых адресов с http:// оставьте виртуальный хост порта 80, который только переадресует посетителя.
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com/
</VirtualHost>
Директива Redirect permanent отдаёт код 301 и сохраняет путь запроса: адрес /blog/ откроется по https как https://example.com/blog/. Через .htaccess и для WordPress тот же результат даёт другая запись, она разобрана на странице редирект на https.
Инструмент · 1 мин
Какие команды нужны именно вашему серверу Apache#
Пути и команды зависят от дистрибутива и от того, откуда сертификат. Ответьте на два вопроса.
Команды для вашего сервера Apache
Два вопроса, и подсказка назовёт нужные команды и файлы
После перезагрузки откройте сайт по https и проверьте срок и цепочку: как проверить SSL-сертификат. Если Apache на сервере с 1С, схема та же, меняются только пути.
06 · 1 мин
Вопросы о подключении SSL к Apache#
Какие директивы нужны для 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» значит, что файл читается.
Почему этому можно верить
Как мы проверяли
Источники цифр на этой странице: SSL-сертификаты Таймвеб, timeweb.com/ru/services/domains/ssl, проверено 19 октября 2026; Let's Encrypt: документация, letsencrypt.org/docs, проверено 19 октября 2026; Apache HTTP Server 2.4: модуль mod_ssl (SSLCertificateFile, SSLCertificateKeyFile, SSLCertificateChainFile), httpd.apache.org/docs/2.4/mod/mod_ssl.html, проверено 19 октября 2026.
Подключите SSL к сайту
От бесплатного Let's Encrypt до платных сертификатов GlobalSign с гарантийной выплатой и установкой под ключ. Любой можно вернуть за 7 дней.
- Бесплатный Let's Encrypt на домен
- Платные от 1 000 ₽ за 6 месяцев
- Wildcard на все поддомены
- 7 дней на возврат