🪶
blog.cat.ssl

Установка SSL в Apache: SSLCertificateFile и настройка mod_ssl

25.07.2035
← Все статьи

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 сум в месяц.

Похожие статьи

📱 SSL pinning: самая надежная защита мобильных приложений от MITM-атак 🤝 Процесс SSL handshake: внутренняя механика TLS-рукопожатия по этапам 🔓 Пропал зеленый замок HTTPS: причины и пошаговое исправление Мониторинг срока действия SSL: системы оповещений и автоматические проверки
🌐 Язык
🇺🇿 O'zbek 🇺🇿 Ўзбек 🇷🇺 Русский 🇬🇧 English