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 - цепочка ключей
Основными являются приватный ключи и ключ центра, цепочки ключей может не быть, но чаще всего он идет в комплекте. Установите на приватный ключ права на чтение только для root
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+