
Настройка Apache SSL настраивает популярный веб-сервер на использование HTTPS. HTTPS шифрует соединение между браузером пользователя и веб-сервером. Чтобы настроить его, в зависимости от среды хостинга, на сервере могут быть выполнены ручные действия. Мы покажем, как действовать в этом процессе.
Требования для использования Apache SSL
Для установления SSL-шифрованных соединений с веб-сервером Apache в первую очередь необходим действующий SSL-сертификат. SSL-сертификаты обычно предоставляются бесплатно через «Let’s Encrypt» и настраиваются автоматически в доступных хостинг-планах. Существует также множество других способов получения SSL-сертификата. Для профессиональных приложений стоит установить специально выпущенный SSL-сертификат. Это сигнализирует посетителям сайта, что они действительно общаются с нужной организацией. Это повышает доверие к вашему сайту.
Купите SSL-сертификат у IONOS — он обеспечит доступное шифрование для вашего сайта.
По сути, SSL-сертификат выдается на определенный домен. Это чисто технический критерий проверки. После этого существуют более строгие уровни проверки, вплоть до проверки личности организации человеком. Давайте рассмотрим различные уровни проверки с первого взгляда:
Валидация |
Объяснение |
Использование |
Валидация домена (DV) |
Обеспечивает шифрование связи только с указанным доменом. Не раскрывает, кто является владельцем домена. |
Приводит к появлению предупреждающего сообщения в браузере в случае попытки фишинга или атаки «человек посередине». |
Проверка организации (OV) |
Как и DV; дополнительно проверяет, что домен принадлежит указанной организации. |
Считается минимальным требованием для онлайн-коммерции. |
Расширенная проверка (Extended Validation, EV) |
Как и OV; дополнительная проверка личности организации человеком. |
Используется крупными организациями, такими как банки, а также правительственными и официальными организациями. |
В дополнение к SSL-сертификатам для отдельных доменов существуют сертификаты типа wildcard. Они применяются ко всем поддоменам ниже указанного домена. Так, сертификат *.example.com действителен для доменов www.example.com, dev.example.com, store.example.com, blog.example.com и т.д. Wildcard сертификаты практичны для параллельного запуска на одном сервере живого сайта, а также магазина или блога.
Если у вас уже есть действующий SSL-сертификат, вам все равно понадобится SSH-доступ к веб-серверу и доступ «sudo» или «root» для настройки Apache SSL.
Научитесь настраивать веб-сервер Apache самостоятельно!
Как настроить SSL-сертификат Apache
Конкретная процедура настройки Apache SSL зависит от используемой операционной системы (ОС) и версии Apache. Вот процесс для «стандартной схемы Apache httpd 2.4». Для среды Apache2 на Ubuntu требуется несколько иная процедура. Дополнительные конфигурации для распространенных комбинаций ОС и версии Apache можно найти в официальной Apache Wiki.
Общий процесс при настройке Apache SSL вручную включает следующие шаги:
- Сгенерировать файлы сертификатов
- Поместить файлы сертификатов на сервер
- Вставить конфигурацию Apache SSL
- Протестировать функциональность Apache SSL
Давайте рассмотрим каждый шаг подробнее.
Генерация файлов сертификатов Apache SSL
Для получения файлов SSL-сертификата выполняется «Запрос на подписание сертификата» (CSR). В процессе CSR доменное имя связывается с идентификационными характеристиками организации и криптографическим ключом. В зависимости от поставщика сертификатов, CSR выполняется либо через веб-интерфейс, либо из командной строки. Мы покажем пример запроса на подписание сертификата через OpenSSL:
openssl req –new –newkey rsa:2048 –nodes –keyout <server-name>.key –out <server-name>.csr
При выполнении команды запрашивается информация и создается несколько файлов. Вот обзор файлов, создаваемых при выполнении запроса на подписание сертификата (CSR), включая расширения файлов:
Файл |
Расширение |
Объяснение |
Закрытый ключ |
.key |
Используется для генерации CSR и последующей защиты и проверки соединений с использованием сертификата. |
Файл CSR |
.csr |
Требуется для заказа SSL-сертификата. |
Промежуточный SSL-сертификат |
.crt |
Сертификат, позволяющий центру сертификации выпускать дополнительные сертификаты. |
Основной SSL-сертификат |
.crt |
SSL-сертификат, выданный для определенного домена и организации. |
Размещение файлов сертификатов Apache SSL на сервере
Для настройки Apache SSL файлы сертификатов размещаются на сервере. Обычно это два-три файла:
- Закрытый ключ
- Основной SSL-сертификат
- Промежуточный SSL-сертификат, если применимо
Поместите эти файлы в собственную папку и убедитесь, что они доступны для чтения только пользователю root. Из командной строки выполните следующие действия:
Создайте папку для файлов сертификатов:
mkdir -p /root/cert/
- Переместить файлы сертификатов в папку:
mv /path/to/cert-files/* /root/cert/
- Настройте пользователей и разрешения, чтобы папки и файлы мог читать только root:
chown root:root /root/cert/
chown root:root /root/cert/*
chmod 400 /root/cert/*
chmod 500 /root/cert/
Защита папки с сертификатами — это не тот же процесс, что и установка парольной защиты для каталога в Apache. Убедитесь, что вы знаете разницу!
Вставка конфигурации Apache SSL
Когда файлы сертификатов находятся на сервере, можно переходить к конфигурации Apache SSL. Сердцем конфигурации Apache SSL является блок «Виртуальный хост» (блок VHost). В большинстве случаев блок VHost уже существует для HTTP-соединений. Если сервер должен отвечать на запросы HTTPS и HTTP, то необходимы оба блока VHost.
Отредактируйте конфигурационный файл Apache:
nano /usr/local/apache2/conf/httpd.conf
Определите существующий блок VHost для HTTP.
Блок, который вы ищете для HTTP, содержит порт номер 80:
<VirtualHost *:80>
DocumentRoot "/var/www/html"
ServerName your.domain.example.com
</VirtualHost>
Дублируйте блок HTTP VHost и настройте его для HTTPS.
Теперь продублируйте блок HTTP VHost, измените порт на 443 и добавьте специфические для Apache SSL настройки:
<VirtualHost *:443>
DocumentRoot "/var/www/html"
ServerName your.domain.example.com
SSLEngine on
SSLCertificateFile /path/to/your_domain_name.crt
SSLCertificateKeyFile /path/to/your_private.key
SSLCertificateChainFile /path/to/DigiCertCA.crt
</VirtualHost>
После этого сохраните изменения в конфигурационном файле Apache.
Проверка функциональности Apache SSL
При настройке конфигурации Apache SSL многое может пойти не так. Существуют тонкие различия в настройках в зависимости от сценария развертывания и требований. Поэтому необходимо протестировать функциональность Apache SSL. Для этого можно воспользоваться удобным инструментом командной строки ‘apachectl’:
apachectl configtest
Если эта команда не работает, попробуйте использовать альтернативную команду ‘apache2ctl’:
apache2ctl configtest
Если проверка прошла успешно, перезапустите сервер Apache:
apachectl restart
После перезапуска сервера Apache с настроенной конфигурацией протестируйте SSL-соединение. Для этого откройте сайт как минимум в двух разных браузерах. И последнее, но не менее важное: протестируйте установленный сертификат. Для этого вы можете воспользоваться бесплатной SSL-проверкой от IONOS.
Узнайте, как повысить производительность веб-сервера Apache!