HTTPS (HyperText Transfer Protocol Secure) это - расширение для протокола HTTP, поддерживающее шифрование. Все передаваемые данные по HTTPS шифруются с помощью протокола SSL или TLS.
Перед началом работы, у вас должны быть сертификаты. Если вы их еще не получили - необходимо выбрать поставщика и купить сертификат. Есть масса поставщиков платных сертификатов: Thawte, Comodoro, GlobalSign и другие. Сейчас есть возможность получить бесплатно сертификат от WoSign.
Настройка для веб-сервера Apache 2.2
Все действия надо выполнять под учетной записью root или с помощью sudo.
Скопируйте следующие файлы в директорию /etc/ssl/:- site.ru.key - приватный ключ
- site.ru.crt - ключ удостоверяющего центра
- chain_root_bundle.crt - цепочка ключей
chmod 0600 /etc/ssl/site.ru.keyв конфигурационный файл для виртуального хоста в Apache (/etc/apache2/sites-enabled/site.ru.conf) добавить:
<VirtualHost 2.17.170.232:443> ServerName site.ru ServerAlias www.site.ru DocumentRoot /home/webmaster/domains/site.ru/public_html SSLEngine on SSLCertificateFile /etc/ssl/site.ru.crt SSLCertificateKeyFile /etc/ssl/site.ru.key SSLCertificateChainFile /etc/ssl/chain_root_bundle.crt SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA SSLHonorCipherOrder on SSLCompression off ErrorLog /var/log/apache/site.ru_error.log CustomLog /var/log/apache/site.ru_access.log combined </VirtualHost>
Комментарии к конфигурации
Указываем ip-адрес сервера и порт<VirtualHost 2.17.170.232:443>Указываем, что протокол шифрования включен
SSLEngine onПуть до ключа от удостоверяющего центра
SSLCertificateFile /etc/ssl/site.ru.crtПуть до приватного ключа
SSLCertificateKeyFile /etc/ssl/site.ru.keyПуть до файла с цепочкой ключей
SSLCertificateChainFile /etc/ssl/chain_root_bundle.crtОпределяем допустимые криптографические наборы (алгоритмы обмена ключами и аутентификации). Конкретный набор согласуется клиентом и сервером во время установления соединения
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHAУказываем, что модуль mod_ssl для Apache должен использовать приоритеты наборов шифров, заданные сервером в директиве SSLCipherSuite (а не клиентом, то есть браузеру не удастся навязать свои предпочтения)
SSLHonorCipherOrder onДалее необходимо выключить поддержку небезопасных протоколов SSLv2, SSLv3 в файле /etc/apache2/mods-enabled/ssl.conf:
SSLProtocol all -SSLv2 -SSLv3тестируем синтаксис конфигурационных файлов средствами Apache
apache2ctl configtestесли тест пройден, перезагружаем конфиги
/etc/init.d/apache2 reloadПосле всех манипуляций, сайт должен открываться по адресу https://site.ru и в начале адресной строки должен появится значок “висячий замок”. Выше описана конфигурация виртуального хоста для Apache 2.2. Если у вас отличается версия Apache или вы используете другой веб-сервер, то вам необходимо сгенерировать свою версию конфига. Для этого воспользуйтесь генератором от Mozilla: https://mozilla.github.io/server-side-tls/ssl-config-generator/
Тестирование работы HTTPS
По завершению необходимо выполнить тестирования работы HTTPS. Для этого воспользуйтесь сервисом: https://www.ssllabs.com/ssltest/analyze.html
Введите полный адрес, включая https и запустите проверку. В среднем проверка занимает от 3 до 6 минут. С такой конфигурацией для Apache 2.2 на одном из сайтов клиента удалось получить рейтинг A.
Помните, защита соедиения не менее важная задача, поэтому рекомендую раз в месяц выполнять проверку сайта в сервисе от SSLlabs для поддержания необходимого уровня защиты шифрования. Если рейтинг снижается, то по завершению проверки, выдаются рекомендации для улучшения.
P.S. И да прибудет с вами рейтинг A+