Установка SSL сертификата на Apache

Установка SSL сертификата на Apache с помощью mod_ssl. #

Установка SSL сертификата и настройка HTTPS протокола на Apache необходима, для обеспечения защиты данных пользователей на вашем веб-сайте. Перед началом установки SSL-сертификата на Ubuntu/Debian потребуется включить модуль mod_ssl с помощью команды: a2enmod ssl.

После выпуска SSL-сертификата на e-mail администратора придёт письмо от Центра Сертификации. В котором будет находится: SSL сертификат, корневой сертификат удостоверяющего центра и промежуточный сертификат. Приватный или по другому закрытый ключ обычно создаётся при оформлении заказа SSL и сохраняется на ваш локальный ПК, а так же сохраняется в вашем личном кабинете.

Разархивируйте всё содержимое архива из ZIP-файла, который был вами получен. Содержимое архива обычно называется: yourDomainName.crt и yourDomainName.ca-bundle. И скопируйте переместите их на свой хостинг, сервер. Для этого вы можете использовать удобный файловый менеджер Filezilla.

Подключаемся к серверу и копируем все полученные сертификаты из архива, в соответствующие каталоги.

Образец стандартной настройки SSL на сервере Apache: #


Копируем закрытый ключ private.key, который был вами сгенерирован ранее в каталог на сервере. Который обычно находится в / etc / ssl / private/. Это должен быть каталог, доступ к которому может получить только сервер Apache.

Переместите в каталог ssl-сертификат yourDomainName.crt и yourDomainName.ca, который обычно находится по адресу / etc /ssl /certs/.

Отредактируйте файл конфигурации default-ssl.conf #

Файл конфигурации Apache находится:

Fedora / CentOS / RHEL: /etc/httpd/conf/httpd.conf
Debian и Ubunta: /etc/apache2/apache2.conf

Возможные имена конфигурации SSL:
HTTPD-ssl.conf
ssl.conf
В каталоге /etc/apache2/sites-available/default-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName yourDomainName.ru # Ваш домен
ServerAlias www.yourDomainName.ru # Ваш домен
ServerAdmin [email protected] # Ваш домен
ServerAdmin [email protected]
DocumentRoot /var/www/html/yourDomainName.ru # Ваш домен
<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>
<Directory /var/www/html/yourDomainName.ru/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride all
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/yourDomainName.crt
# Ваш серт
SSLCertificateKeyFile /etc/ssl/private/rivate.key
# Ваш ключ
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
</VirtualHost>
</IfModule>

Примечание . Местоположение этого файла может отличаться от каждого дистрибутива. Он будет указан в глобальном файле конфигурации Apache. Ищите строки, начинающиеся с include .

Примечание. При необходимости, обратитесь к документации вашего дистрибутива на Apache или перейдите к документации Apache2 Apache Foundation.

Добавление директив в VirtualHost #

В разделе VirtualHost файла добавьте эти директивы, если они не существуют. Лучше всего прокомментировать, что уже есть, и добавить приведенные ниже записи.

SSLEngine on
SSLCertificateKeyFile /etc/ssl/ssl.key/private.key
SSLCertificateFile /etc/ssl/ssl.crt/yourDomainName.crt
SSLCertificateChainFile /etc/ssl/ssl.crt/yourDomainName.ca-bundle ***

Apache 1.3.x:

SSLEngine on
SSLCertificateKeyFile /etc/ssl/ssl.key/server.key
SSLCertificateFile /etc/ssl/ssl.crt/yourDomainName.crt
SSLCACertificateFile /etc/ssl/ssl.crt/yourDomainName.ca-bundle

Apache 2.x:

SSLEngine on
SSLCertificateKeyFile /etc/ssl/ssl.key/private.key
SSLCertificateFile /etc/ssl/ssl.crt/yourDomainName.crt
SSLCertificateChainFile /etc/ssl/ssl.crt/yourDomainName.ca-bundle

Сохраните файл конфигурации и перезапустите службу Apache.

sudo systemctl restart apache2

Иногда требуется «остановить», а затем «запустить» Apache вместо того, чтобы выпустить команду «restart», чтобы изменения вступили в силу.

Включение редиректа с HTTP на HTTPS #

Когда вы установили SSL-сертификат и настроили VirtualHost нужно будет настроит редирект с HTTP на HTTPS. Редирект для Apache сервера можно настроить через файл .htaccess.

Для того чтобы включить переадресацию добавьте в файл .htaccess следующие строки:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} ^yourDomainName.ru


Заметки:
Если вы выбрали пароль для своего закрытого ключа, вам будет предложено ввести его каждый раз, когда Apache запускается или перезапускается. Сервер не будет полностью запущен до ввода пароля.

Файл конфигурации часто называют httpd.conf или apache.conf , хотя иногда раздел , посвященный SSL, помещается в отдельный файл ssl.conf и связан с основной конфигурацией командой «Include». Иногда раздел VirtualHost будет находиться в определенном файле для этого сайта, в подкаталоге, который часто помечен сайтами .

Большая часть компоновки конфигурационных файлов Apache и соглашений об именах каталогов контролируется распределением используемой ОС. Для подтверждения местоположения рекомендуется просмотреть собственный сайт и документацию по дистрибуции. После настройки по инструкции вы получите работающий сайт https.