Как настроить Apache SSL шаг за шагом

Настройка 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 вручную включает следующие шаги:

  1. Сгенерировать файлы сертификатов
  2. Поместить файлы сертификатов на сервер
  3. Вставить конфигурацию Apache SSL
  4. Протестировать функциональность 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 файлы сертификатов размещаются на сервере. Обычно это два-три файла:

  1. Закрытый ключ
  2. Основной SSL-сертификат
  3. Промежуточный SSL-сертификат, если применимо

Поместите эти файлы в собственную папку и убедитесь, что они доступны для чтения только пользователю root. Из командной строки выполните следующие действия:

Создайте папку для файлов сертификатов:

mkdir -p /root/cert/
  1. Переместить файлы сертификатов в папку:

 

mv /path/to/cert-files/* /root/cert/
  1. Настройте пользователей и разрешения, чтобы папки и файлы мог читать только 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!

Оцените статью
cdelat.ru
Добавить комментарий