Apache, HTTPS и сертификаты от WoSign
05-10-2015. Разместил: synergix Доброго вам дня, уважаемые посетители моего маленького ресурса.
Сегодня, как вы уже догадались, речь пойдет о настройке https на веб-сервере Apache. А помогут нам в этом деле бесплатные сертификаты от Wosign на год. В эпоху разоблачений Сноудена, прослушки АНБ и повышения благосклонного внимания Google именно к защищенным сайтам - это дает ощутимые бонусы, зеленый замочек в адресной строке, повышения ЧСВ и плюсик в карму.
Возможно, кто-то уже скажет - "фи, это уже сотни раз разжеванно, чего еще раз городить статью" - согласен, если ваш сайт(ы) в тесте SSLLABS гордо показывает А+ - вам незачем читать статью. Ну а заинтересовавшихся - милости просим.
Что же нам необходимо?
1. VDS/VPS на которой хостится ваш сайт.
2. Установленный Apache.
3. Доступ к почте webmaster от вашего домена.
4. 15 минут времени.
Перво-наперво идем на сайт WoSign и регистрируемся:
Получив письмо о успешной регистрации, проходим валидацию по ссылке в письме. Далее, проходим на страницу для уже собственно получения сертификата:
Тут стоит сделать небольшое отступление: следует учесть, что наша конфигурация будет требовать браузеры с набором современных шифров и не будет работать на IE6 и IE8 с Windows XP SP2 и ниже. Впрочем, доля подобных посетителей ничтожна мала, а безопасность дороже.
После заполнения всех необходимых полей и подтверждения по e-mail что домен действительно ваш, а также указания пароля - вам предложат скачать запароленный архив формата zip, в котором собственно и будут находиться сертификаты для различных веб-серверов (Apache, Nginx, IIS, Tomcat, etc).
Нас в данном случае интересует именно сертификаты для Apache.
Я приведу пример для настройки конфигов на базе Debian c Apache 2.2 на борту, но рекомендации применимы для любых *nix.
Перво-наперво скопируем полученные сертификаты вида 1_root_bundle.crt, 2_yoursite.com.crt, 3_yoursite.com.key в /etc/ssl.
Сначала поправим /etc/apache2/mods-available/ssl.conf, отключив SSLv3 и задав набор шифров, раскомментировав и приведя директивы к виду:
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"
SSLHonorCipherOrder on
SSLProtocol all -SSLv2 -SSLv3
Далее, включим HSTS и настроим виртуальный хост, редактируя или создав соответствующий файл в /etc/apache2/sites-available/yoursite.com-ssl:
Включаем headers:
a2enmod headers
Правим конфиг виртуального хоста, добавив после строки
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Прописываем сертификаты, найдя соответствующие строчки:
SSLCertificateFile /etc/ssl/2_yoursite.com.crt
SSLCertificateKeyFile /etc/ssl/3_yoursite.com.key
SSLCertificateChainFile /etc/ssl/1_root_bundle.crt
И, в зависимости от желания, включаем перенаправление всех запросов на 443 порт, отредактировав /etc/apache2/sites-available/yoursite.com
<VirtualHost *:80>
[...]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</IfModule>
</VirtualHost>
Перезапускаем apache комадной
service apache2 restart
и убедившись в отсутствии ошибок при старте, проверяем свой сайт на SSLLAB.
Если Ваш результат ниже А+ - возможно вы допустили ошибку в конфиге.
К слову, https на данном ресурсе работает именно по этой статье.
На этом собственно все, спасибо вам за внимание и хорошего дня ;)
Вернуться назад