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

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

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

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

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

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

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

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

  1. Открытая часть CRT, свободно распространяемая, которой шифруются запросы к сайту;
  2. Закрытая часть 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. У этого плагина два основных поля - "что менять" и "на что" и вспомогательные поля "где менять". Сначала везде меняем все ссылки 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.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *