Apache HTTP Server — один из самых старых и распространённых веб-серверов в мире, на котором работают миллионы сайтов. Установка SSL в Apache осуществляется через модуль mod_ssl и требует чуть более развёрнутого синтаксиса по сравнению с Nginx. Главное преимущество Apache — возможность задавать настройки в каждой папке через .htaccess, что особенно ценно в shared-хостинге. Технические специалисты Sayt.uz работают с Apache ежедневно и рекомендуют клиентам проверенные на практике конфигурации.
Активация модуля mod_ssl
На серверах Debian и Ubuntu модуль mod_ssl активируется командой a2enmod ssl, после чего нужно перезапустить Apache командой systemctl restart apache2. Проверить загрузку модуля можно через apache2ctl -M с фильтром grep ssl. В системах CentOS и RHEL модуль устанавливается отдельно через yum install mod_ssl или dnf install mod_ssl и активируется автоматически. После активации открывается порт 443, и Apache начинает принимать шифрованные соединения.
Настройка виртуального хоста
Файл конфигурации виртуального хоста обычно располагается в /etc/apache2/sites-available/example.com-ssl.conf и начинается с тега VirtualHost для порта 443. Внутри блока укажите SSLEngine on, затем пути к файлам сертификата: SSLCertificateFile для fullchain.pem и SSLCertificateKeyFile для privkey.pem. В старых версиях Apache до 2.4.7 нужно было отдельно указывать CA Bundle через SSLCertificateChainFile, но в современных версиях fullchain.pem содержит уже полную цепочку.
Перенаправление HTTP на HTTPS
В блоке виртуального хоста на порту 80 добавьте Redirect permanent / https://example.com/, и весь HTTP-трафик будет автоматически перенаправлен на защищённую версию. Это делает сайт безопасным для всех пользователей и помогает Google индексировать только HTTPS. Альтернативный способ — через mod_rewrite с RewriteEngine On и RewriteCond %{HTTPS} off, что даёт больше гибкости для отдельных URL.
Современные настройки шифрования
Чтобы отключить устаревшие TLS 1.0 и 1.1, добавьте в ssl.conf директиву SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1, оставив только TLS 1.2 и 1.3. Параметр SSLCipherSuite настройте по профилю Mozilla Modern для максимальной безопасности. Директива SSLHonorCipherOrder on делает порядок шифров обязательным со стороны сервера и защищает от атак BEAST. Для активации OCSP Stapling добавьте SSLUseStapling on и SSLStaplingCache shmcb:/var/run/ocsp(128000).
HSTS и заголовки безопасности
Добавление Header always set Strict-Transport-Security max-age=31536000 includeSubDomains заставляет браузеры всегда подключаться к сайту по HTTPS. Дополнительно стоит включить X-Content-Type-Options nosniff и X-Frame-Options SAMEORIGIN для защиты от MIME sniffing и clickjacking. Заголовок Content-Security-Policy необходим для современных сайтов и затрудняет проведение XSS-атак. Чтобы добавлять эти заголовки в Apache, активируйте модуль mod_headers.
Практика Sayt.uz
28 процентов инфраструктуры Sayt.uz работает на Apache, и мы используем эту конфигурацию по умолчанию на cPanel-хостингах. На каждый сервер мы поставляем готовые настройки с TLS 1.3, OCSP Stapling и HSTS, и клиенту не нужно ничего настраивать самостоятельно. Услуга миграции SSL бесплатна, и технические специалисты приводят существующую конфигурацию Apache к оптимальному виду за два часа. На shared-хостинге SSL устанавливается автоматически и поддерживается за 25 000 сум в месяц.