SSL сертификат для сайта

SSL сертификат для сайта — прикручивание SSL-сертификата к сайту востребовано, все любят сайты с SSL сертификатом: и люди, и поисковые системы. Вот что говорит к примеру Google (там в конце статьи).

Для меня это новая тема была, да и не написана нигде пошаговая последовательность действий. Пришлось разбираться самому.
Полноценный сертификат для сайта бесплатно предлагает StartSSL и везде подобный сертификат стоит денег. Зачем они это делают? Кроме как рекламным ходом объяснить не могу. Тем не менее, сертификат есть. Как зарегистрироваться у них на сайте и как подтвердить права собственности на домен - это вы разберетесь без меня. Хотел рассказать именно про привязку сертификата.


Генерация ключей

Рассмотрю на примере CPanel'и. В ней, в разделе SSL, сначала заполняю запрос на подпись сертификата (CSR). Вместе с ним генерируется закрытый ключ (KEY).

SSL сертификат для сайта

Для закрытого ключа появляется запись в разделе Ключи на сервере.

В чем смысл? CSR привязан к KEY и именно этот CSR нужно вставить на StartSSL для генерации сертификата (CRT). Тогда и только тогда сертификат (CRT) соответствует закрытому KEY-ключу и получается пара:

  1. Открытая часть CRT, свободно распространяемая, которой шифруются запросы к сайту;
  2. Закрытая часть KEY, хранимая на сайте и используемая для расшифровки запросов.

И тут есть прикол, про который не все знают. Расскажу. CRT и KEY как две половинки целого. Если зашифровать с помощью CRT, расшифровать может только KEY. Если же зашифровать с помощью KEY, расшифровать может только CRT. Более того, сайт легко может сгенерировать обе половинки.

Так зачем же делать какой-то запрос CSR и куда-то отправлять? Для того чтобы Центр Сертификации (CA) сгенерировал вторую половинку и подписал своей подписью для валидности. Только для этого, ни для чего более.

Название "приватный ключ" полная условность. Любая из двух половинок технически подойдёт а качестве приватного ключа. Но вот генерируется только одна и именно она KEY. Надеюсь понятно объяснил.

Скачиваем сертификат. Это архив с файлами .crt для разных версий веб-движка. Загружаем на хостинг нужную версию файла через раздел Сертификаты (CRT). У меня Apache, соответственно загружаю для Apache. Для CRT-появляется запись в разделе Сертификаты на сервере.


Установка

Теперь устанавливаем сертификат на сайт. Здесь особенность то, что на сайт сертификат устанавливается не файлом, а в виде текста:

-----BEGIN RSA PRIVATE KEY-----
....
KCAQEArCQG213utzqE5YVjTVF5exGRCkE9OuM7LCp/FOuPdoHrFUXkAVXMZdMB5n
y2MQcwf29J3A4i8zxpES9RdSEU6iIEsow98wIi0x1/Lnfx6jG5Y0/iQsG1NRlNCC
aydGvGaC+PwwWiwYRc7PtBgV4KOAVXMZdMB5nFRaekQ1ksdH/360KCGgljPtzTNl
09e97QBwHFIZ3ea5Eih/HireTrRSnvF+ywmwuxX4ubDr0ZeSceuF2S5WLXH2+TV0
 ....
-----END RSA PRIVATE KEY-----

Такой текст можно увидеть в свойствах записи для KEY и CRT (почему так пояснял выше). Оттуда его нужно скопировать и поместить в два соответствующих поля, одно поле для закрытой части, другое для открытой. Если все правильно сделано, то в разделе Управление установленными сайтами SSL появится новая запись.

SSL сертификат для сайта

Чтобы SSL заработал нужно всего лишь поменять одну настройку в WordPress:

SSL сертификат для сайта

И если теперь набрать сайт в адресной строке как https:// — он откроется.


Настройка сайта

Вторая часть работы сделать всё только HTTPS. Ведь теперь все страницы дублируются. И как HTTP, и как HTTPS. Поисковикам это 100% не понравится. Много всяких способов написано. Самым простым мне показался способ через плагин Velvet Blues Update URLs. У этого плагина два основных поля, "что менять" и "на что" и вспомогательные поля "где менять". Сначала везде меняем все ссылки http://arny.ru на https://arny.ru.

SSL сертификат для сайта

Последнее. Ставим плагин, который осуществляет редирект запросов HTTP в HTTPS через файл htaccess. Таких плагинов много, мне больше других понравился Really Simple SSL. Он имеет самое свежее обновление и больше всего установок среди подобных плагинов. Главный плюс его в том, что он действительно работает. 🙂

SSL сертификат для сайта

Но при этом плагин лепит https:// ко всем ссылкам на сайте. Половина ссылок перестала открываться и нужно вручную все ссылки перебрать/пересмотреть. Хорошо, что материала у меня на сайте не так много и сделать это несложно.

С этого момента все ссылки на внешние источники только в формате HTTPS, остальные ссылки на незащищенные сайты буду выкладывать как текст.


Добавление от 18.06.2016

Ну конечно же забыл еще один важный момент, поменять директивы Host и Sitemap в файле robots.txt.


Добавление от 17.05.2017

Ну вот и закончилась халява StartSSL. Браузеры больше не признают сертификаты выданные этой компанией как надёжные, а отображают красный замок и перечёркнутое https перед названием сайта. Да и сам startssl.com не открывается:

SSL сертификат для сайта

Переходим к запасному варианту Let's Encrypt. Сертификат также бесплатный. Недостаток в том, что выдаётся такой сертификат на 90 дней, не поддерживает поддомены, IPv6, домены на кириллице. Но поскольку мне это не особо сильно нужно, пойдёт. Здоровый жирный плюс: у моего хостера сертификат устанавливается автоматически из CPanel'и. Занимает это ровно 1 минуту. По истечении срока сертификат автоматически продлевается.

Automatic Let's Encrypt renewal for arny.ru was completed. The certificate now expires 
on 2017-10-15 07:04:00 +0300 MSK.

This certificate will be automatically renewed at that point.

Leave a Comment

Scroll to Top