В этом руководстве вы узнаете, как установить SSL-сертификат на Apache, шаг за шагом. Инструкции применимы к Apache 2.4 — текущей стабильной ветке.
Содержание
- Как сгенерировать CSR-код на Apache?
- Установка SSL-сертификата на Apache
- Проверка SSL-установки
- Где купить SSL-сертификат для Apache?
Как сгенерировать CSR-код на Apache?
Certificate Signing Request, или просто CSR, — это небольшой текстовый файл, содержащий информацию о владельце домена и/или компании. Генерация CSR является неотъемлемой частью процесса приобретения SSL-сертификата, и все коммерческие Certificate Authorities требуют от заявителей выполнения этого шага.
У вас есть два варианта:
- Сгенерировать CSR автоматически с помощью нашего генератора CSR.
- Следовать нашему пошаговому руководству по созданию CSR на Apache.
Установка SSL-сертификата на Apache
После того как Certificate Authority подпишет и отправит вам SSL-сертификат, вы можете безопасно установить его на сервер Apache. Следуйте приведённым ниже шагам.
Шаг 1: Подготовьте файлы сертификата
Скачайте и распакуйте файлы из ZIP-архива, полученного от вашего Certificate Authority. Как правило, вы найдёте:
- Файл .crt — ваш основной SSL-сертификат.
- Файл .ca-bundle — промежуточные (и корневые) сертификаты, формирующие цепочку доверия. Эта цепочка необходима для того, чтобы браузеры и приложения могли проверить ваш сертификат. Без неё некоторые клиенты могут пометить ваш сайт как небезопасный.
Загрузите эти файлы вместе с закрытым ключом (.key), сгенерированным вместе с CSR, в защищённый каталог на вашем сервере, например /etc/ssl/. Убедитесь, что закрытый ключ доступен для чтения только пользователю root (chmod 600).
Рекомендуется (Apache 2.4.8 и новее): объедините ваш сертификат и CA bundle в единый файл «полной цепочки». Начиная с Apache 2.4.8, директива SSLCertificateFile загружает промежуточные сертификаты непосредственно из этого файла, поэтому устаревшая директива SSLCertificateChainFile больше не нужна:
cat your_domain.crt your_domain.ca-bundle > your_domain_fullchain.crt
Если ваш CA предоставил промежуточные сертификаты в виде отдельных файлов, объедините их с вашим сертификатом: сначала идёт ваш сертификат, затем промежуточные в порядке от того, который подписал ваш сертификат, до корневого (сам корневой сертификат необязателен):
cat your_domain.crt intermediate.crt root.crt > your_domain_fullchain.crt
Например, при установке сертификата Sectigo PositiveSSL вы объединяете сертификат домена с промежуточным пакетом Sectigo. Всегда используйте точные имена файлов, предоставленные вашим CA.
Шаг 2: Включите модуль SSL (mod_ssl)
Перед настройкой HTTPS убедитесь, что модуль SSL в Apache включён.
На Debian/Ubuntu включите mod_ssl (и mod_headers, который понадобится для заголовка HSTS на шаге 4):
sudo a2enmod ssl
sudo a2enmod headers
На RHEL/CentOS/AlmaLinux/Rocky Linux установите пакет модуля SSL (модуль загружается автоматически после установки):
sudo dnf install mod_ssl
Шаг 3: Найдите файл конфигурации Apache
В зависимости от операционной системы и версии Apache конфигурация может находиться в разных файлах. Ищите httpd.conf, apache2.conf или отдельный файл конфигурации SSL/сайта в одном из следующих мест:
- Debian/Ubuntu: основной конфиг /etc/apache2/apache2.conf; конфиги отдельных сайтов в /etc/apache2/sites-available/.
- RHEL/CentOS/AlmaLinux/Rocky: основной конфиг /etc/httpd/conf/httpd.conf; конфиг SSL /etc/httpd/conf.d/ssl.conf.
Примечание: если ваш сервер Apache работает на Ubuntu, вы также можете воспользоваться нашими специальными инструкциями по установке SSL для Ubuntu.
Шаг 4: Настройте виртуальный хост
Сначала создайте резервную копию текущего файла конфигурации. Так, если что-то пойдёт не так, вы сможете быстро откатить изменения:
sudo cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.backup
Теперь откройте файл конфигурации и настройте виртуальный хост HTTPS (порт 443). Полный современный виртуальный хост выглядит следующим образом:
<VirtualHost *:443>
ServerName www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example
SSLEngine on
# Apache 2.4.8+ : server certificate + intermediate chain in ONE file
SSLCertificateFile /etc/ssl/example_com_fullchain.crt
SSLCertificateKeyFile /etc/ssl/example_com.key
# Recommended TLS hardening (2026)
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLHonorCipherOrder off
# Tell browsers to always use HTTPS (enable only after HTTPS works)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
ErrorLog ${APACHE_LOG_DIR}/example_error.log
CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>
Замените example.com, корневой каталог документов и пути к файлам на собственные значения. Вот что делают ключевые директивы:
- SSLEngine on — включает SSL/TLS для данного виртуального хоста.
- SSLCertificateFile — путь к файлу полной цепочки (сертификат + промежуточные), созданному на шаге 1. В Apache 2.4.8+ эта единственная директива заменяет устаревшую SSLCertificateChainFile.
- SSLCertificateKeyFile — путь к вашему закрытому ключу, сгенерированному вместе с CSR.
- SSLProtocol -all +TLSv1.2 +TLSv1.3 — отключает старые небезопасные протоколы SSL/TLS и разрешает только TLS 1.2 и TLS 1.3.
- Strict-Transport-Security (HSTS) — указывает браузерам подключаться только по HTTPS. Требует mod_headers (включён на шаге 2). Включайте только после того, как убедитесь, что HTTPS работает корректно.
Убедитесь, что ни одна из этих строк не начинается с # (это превратило бы их в комментарии). На Debian/Ubuntu переменная ${APACHE_LOG_DIR} указывает на /var/log/apache2; на системах на базе RHEL используйте /var/log/httpd/.
Устаревшие серверы: если вы используете версию Apache старше 2.4.8, храните сертификат и цепочку в отдельных файлах и добавьте устаревшую директиву SSLCertificateChainFile /etc/ssl/example_com.ca-bundle после SSLCertificateFile. На любом современном сервере предпочтительнее использовать подход с полной цепочкой, описанный выше.
Расширенная защита (необязательно): для более надёжного набора шифров и OCSP stapling сгенерируйте индивидуальную конфигурацию с помощью Mozilla SSL Configuration Generator. OCSP stapling также требует директивы SSLStaplingCache в глобальной конфигурации Apache.
Шаг 5: Перенаправление HTTP на HTTPS
Чтобы посетители всегда попадали на защищённую версию вашего сайта, добавьте второй виртуальный хост на порту 80, который постоянно перенаправляет весь HTTP-трафик на HTTPS:
<VirtualHost *:80>
ServerName www.example.com
Redirect permanent / https://www.example.com/
</VirtualHost>
Шаг 6: Проверьте конфигурацию и перезапустите Apache
Всегда проверяйте конфигурацию перед перезапуском. Синтаксическая ошибка может вывести сайт из строя, поэтому выполните:
sudo apachectl configtest
Если всё в порядке, вы увидите:
Syntax OK
Теперь примените изменения, перезагрузив Apache (перезагрузка активирует новую конфигурацию без разрыва существующих соединений):
sudo systemctl reload apache2 # Debian/Ubuntu
sudo systemctl reload httpd # RHEL/CentOS/AlmaLinux/Rocky
Если перезагрузки недостаточно, перезапустите службу (sudo systemctl restart apache2 или httpd). На старых системах без systemd используйте sudo apachectl graceful.
Если установка прошла успешно — поздравляем! Ваш сайт теперь защищён с помощью SSL/TLS.
Проверка SSL-установки
После установки SSL-сертификата на Apache убедитесь, что всё работает корректно. Мгновенное сканирование выявит любые ошибки или уязвимости, которые могут повлиять на работу вашего сертификата. Используйте наш инструмент SSL Checker, чтобы проверить статус установки.
Вы также можете проверить сертификат и его цепочку непосредственно из командной строки:
openssl s_client -connect www.example.com:443 -servername www.example.com
Где купить SSL-сертификат для Apache?
Лучшее место для получения SSL-сертификата для Apache — это SSL Dragon. Мы предлагаем непревзойдённые цены и скидки на весь ассортимент SSL-продуктов и тщательно отобрали лучшие SSL-бренды на рынке, чтобы обеспечить вашему сайту надёжную защиту. Все наши SSL-сертификаты совместимы с Apache. Получите SSL-сертификат прямо сейчас!
Имейте в виду, что сроки действия SSL/TLS-сертификатов сокращаются: максимальный срок действия снизится до 200 дней в марте 2026 года, до 100 дней в 2027 году и до 47 дней к 2029 году. Более короткие жизненные циклы означают более частые продления, поэтому стоит заранее спланировать процесс продления (и его автоматизацию).
Часто задаваемые вопросы
SSL (Secure Sockets Layer), пришедший на смену TLS (Transport Layer Security), — это криптографический протокол, который шифрует обмен данными между двумя сетевыми узлами, например веб-сервером Apache и браузером пользователя.
На дистрибутивах Debian и Ubuntu выполните поиск директивы SSL-протокола в конфигурации:grep -ir SSLProtocol /etc/apache2/
Если SSL настроен, вы увидите вывод, похожий на:/etc/apache2/mods-available/ssl.conf:SSLProtocol +TLSv1.2 +TLSv1.3
Вы также можете убедиться, что модуль SSL загружен в работающий сервер:apachectl -M | grep ssl
Файл конфигурации может находиться в разных местах в зависимости от вашей ОС и настроек. На Debian/Ubuntu проверьте /etc/apache2/apache2.conf и файлы отдельных сайтов в /etc/apache2/sites-available/. На RHEL/CentOS/AlmaLinux/Rocky проверьте /etc/httpd/conf/httpd.conf и /etc/httpd/conf.d/ssl.conf.
SSLCertificateFile указывает на сертификат вашего сервера. Начиная с Apache 2.4.8, тот же файл может содержать промежуточные сертификаты, обеспечивая полную цепочку. SSLCertificateChainFile — это старый способ предоставления промежуточных сертификатов отдельно, однако он устарел начиная с Apache 2.4.8. На любом современном сервере помещайте сертификат и промежуточные в один файл и указывайте его только через SSLCertificateFile.
Сэкономьте 10% на SSL-сертификатах при заказе сегодня!
Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10


