Это старая версия документа.
Веб-сервер Apache полностью поддерживает работу по HTTPS. Для того, чтобы активировать поддержку HTTPS на уже установленном Apache необходимо выполнить всего две вещи.
Для начала необходимо активировать mod_ssl
:
sudo a2enmod ssl sudo /etc/init.d/apache2 restart
А затем включить настройки HTTPS сайта по умолчанию:
sudo a2ensite default-ssl sudo /etc/init.d/apache2 reload
Теперь необходимо отредактировать файл с настройками HTTPS сайта по умолчанию, указав в нём пути к вашим сертификатам. Сам файл называется /etc/apache2/sites-enabled/default-ssl
.
В этом файле рекомендуется после директивы
SSLEngine on
добавить строчку
SSLProtocol all -SSLv2
дабы запретить использование устаревшего протокола SSLv2.
Дальше вам необходимо отредактировать параметры, ответственные за сертификаты. В простейшем случае всё будет выглядеть примерно так:
# Публичный сертификат сервера SSLCertificateFile /etc/apache2/certs/youserver.pem # Приватный ключ сервера SSLCertificateKeyFile /etc/apache2/certs/private.key # Файл с сертификатами промежуточных центров сертификации SSLCertificateChainFile /etc/apache2/certs/chain-ca.pem # Файл с сертификатом корневого центра сертификации SSLCACertificateFile /etc/apache2/certs/ca.crt
Теперь просто перезагрузите Apache:
sudo /etc/init.d/apache2 restart
И если все параметры указаны верно, ваши сайты станут доступны по HTTPS.
Перенаправление HTTP на HTTPS
Если вы хотите запретить использование HTTP, то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Чтобы добиться этого можно, например, организовать перенаправление с помощью mod_rewrite
. Для этого сначала необходимо его активировать:
sudo a2enmod rewrite sudo /etc/init.d/apache2 restart
Затем изменить файл /etc/apache2/sites-enabled/000-default
, удалив из него все лишние <Directory>
и оставив из описаний директорий только примерно следующее:
DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options -Indexes FollowSymLinks MultiViews AllowOverride None RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} Order allow,deny allow from all </Directory>
Всё, теперь ещё раз перезапустите Apache и убедитесь, что при заходе по HTTP вы автоматически перенаправляетесь на HTTPS страницу.