Это старая версия документа.


Веб-сервер 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 страницу.