Инструкция по переезду на HTTPS

Table of contents

Introduction

В данной статье мы познакомимся с расширением протокола HTTP (HyperText Transfer Protocol — протокол передачи гипертекста) для поддержки шифрования, работающим через транспортные механизмы SSL и TLS.

Для чего нужен HTTPS

Основные причины:

  1. С июля 2018 года браузер Google Chrome помечает все HTTP-сайты как ненадежные

  2. Google рассматривает HTTPS, как фактор ранжирования сайта в поисковой выдаче

  3. Безопасность – HTTPS предотвращает перехват и модификацию трафика пользователей

  4. Все большую популярность получает технология PWA, для которой HTTPS – это обязательное требование

  5. Для регистрации в доменной зоне .app необходимо наличие сертификата

Что такое сертификат

Говоря о HTTPS, постоянно упоминаются сертификаты, вкратце разберемся что это и для чего они нужны.

Протоколы SSL и TLS используют для шифрования инфраструктуру ключей:

  1. Открытый ключ (известен всем) – необходим для шифрования информации

  2. Закрытый ключ (известен владельцу) – необходим для расшифровки

Данная схема называется асимметричным шифрованием, а инфраструктура подчиняется стандарту X.509. Стандарт X.509 определяет понятие «сертификат с открытым ключом» (Согласно RFC 1422) и его структуру, в которой хранится информация об открытом ключе, владельце ключа, имени субъекта и т.д. Данная информация позволяет подтвердить принадлежность открытого ключа его владельцу.

Таким образом сертификат позволяет:

  1. Шифровать передаваемую информацию открытым ключом

  2. Проверить подлинность ресурса

  3. Обеспечить целостность передаваемой информации

Выбор сертификата, исходя из типа сайта

Для выбора сертификата необходимо понимать какие варианты бывают:

  1. По уровню валидации:

    • SSL-сертификаты домена (Domain Validation, DV) – доступен физическим и юридическим лицам, подтверждает лишь право владения доменом. Возможно получить практически моментально. Распространены бесплатные версии данного сертификата.

    • SSL-сертификаты организации (Organization Validation, OV) – доступен только юридическим лицам, подтверждает не только право владения доменом, но и проверяет существование организации, из-за чего получение может затягиваться на несколько дней.

    • SSL-сертификаты высокой надежности (Extended Validation, EV SSL) – доступен только юридическим лицам, подтверждает не только право владения доменом, но и проверяет существование организации, расширенная проверка юридического существования организации, адресная строка подсвечивается зеленым цветом, один из самых дорогих типов сертификата.

  2. По способу получения:

    • «пустой» сертификат – сертификат, содержащий фиктивную информацию, используемую в качестве временной, для настройки SSL и проверки его функциональности в данной среде.

    • самоподписанный сертификат – сертификат, созданный самим пользователем — в этом случае издатель сертификата совпадает с владельцем сертификата. Браузер проверяет выдан ли сертификат известным CA, и если нет, то выдает предупреждение, что сертификат не является доверенным.

    • сертификат, выданный Центром Сертификации (Certificate Authority, CA) – CA подтверждает подлинность вашей организации, пользуясь своей репутацией.

  3. По платности:

    • бесплатные – Let’s Encrypt, а также бесплатно могут выдаваться сертификаты различными хостинг-провайдерами в качестве бонуса за использование других услуг, к примеру, Amazon. Но, как правило, бесплатные сертификаты предоставляются лишь для уровня Domain Validation.

    • платные – CA берет плату за пользование их репутацией.

  4. По числу поддерживаемых доменов:

    • Основной домен и www-поддомен – сертификат действует только на example.ru и www.example.ru.

    • Wildcard – домен и поддомены – сертификат действует на все поддомены домена *.example.ru (для каждого уровня поддоменов нужен свой сертификат).

Для продвижения в большинстве случаев подойдут бесплатные сертификаты DV SSL, но нужно ориентироваться также и на тип сайта. Рекомендованные типы сертификатов, исходя из типа сайта:

DV SSL OV SSL EV SSL
Блог + +/- +/-
Форум + +/- +/-
Социальная сеть + +/- +/-
Интернет-магазин +/- + +/-
Малый бизнес + +/- +/-
Средний и крупный бизнес - + +/-
Сайт организации +/- + +/-
Финансовая организация (Банк) - - +
Платежная система - - +

Конечно же, если вы являетесь юридическим лицом, то и на сайт типа "блог" можно установить сертификат EV SSL, но это необязательно, поэтому таблица носит рекомендательный характер и подбирать сертификат для сайта стоит исходя из факторов:

  1. Степень доверия, которую вы хотите обеспечить ресурсу

  2. Бюджет на покупку сертификата

  3. Сертификат приобретается для физического или юридического лица

  4. Количество поддоменов, для которых необходим сертификат

Бесплатный Wildcard Доступны физ. лицам
DV SSL + + +
OV SSL - + -
EV SSL - - -

Также одним из способов выбора может быть анализ сертификатов, которые установлены на сайтах конкурентов или же на сайтах с идентичным контентом/продуктом.

Способы получения сертификата

После того, как мы выбрали тип сертификата, нам необходимо его заказать и активировать.

При выборе поставщика услуг SSL следует ориентироваться на список доверенных удостоверяющих центров: https://cabforum.org/members/.

А также на то, поддерживает ли сертификат IDN (Internationalized Domain Names — интернационализованные доменные имена) - это доменные имена, которые содержат символы национальных алфавитов, например, президент.рф.

Удобная таблица выбора сертификата и цен: https://www.reg.ru/ssl-certificate/choose.

Купить сертификат можно у сервиса, оказывающего хостинг-услуги, к примеру, https://www.reg.ru/ или любого другого.

Для удобства можно выбрать для покупки того поставщика, у которого вы заказываете хостинг-услуги (если у него есть услуга по продаже сертификатов). Или же исходить из цены, которая меняется не только от выбранного CA, но и от всевозможных акций. Акции на покупку сертификатов проходят довольно часто и если установка сертификата “не горит”, то можно изучить рынок и выбрать наиболее выгодный вариант.

После того, как мы определились с типом и местом, где будем совершать покупку сертификата, нам остается зарегистрироваться (если еще не зарегистрированы) и заказать сертификат.

Способы заказа отличаются у DV или Let's Encrypt и OV/EV SSL-сертификатов, т.к. последние 2 требуют больше информации для подтверждения.

Заказ DV SSL-сертификата:

  1. Выбираем количество доменов/поддоменов: один домен + www-домен или wildcard для домена и его поддоменов.

  2. Оплачиваем заказ сертификата любым доступным способом.

  3. Указываем запрашиваемые контактные данные для выпуска сертификата.

  4. После заполнения данных становится доступным CSR-запрос (Certificate Signing Request, зашифрованный запрос на выпуск сертификата, содержащий введенные ранее данные) и приватный ключ.

    На некоторых площадках может быть доступно только поле для ввода CSR, тогда придется сгенерировать ключ другим сервисом, к примеру, https://www.reg.ru/ssl-certificate/generate_key_and_csr, или через консоль утилитой openssl, но такие площадки встречаются редко и как правило предоставляется генератор, встроенный в площадку.

    На данном этапе необходимо скопировать и сохранить CSR-запрос и приватный ключ у себя на компьютере и далее отправить запрос на выпуск сертификата.

  5. После отправки запроса на выпуск сертификата необходимо дождаться письма на оставленную контактную почту. В данном письме будут дальнейшие инструкции по активации сертификата.

  6. Активация сертификата может происходить несколькими способами:

    • через email: здесь для проверки нам понадобится определенного вида почта на домене, для которого идет оформление сертификата: admin@example.ru, administrator@example.ru, postmaster@example.ru, hostmaster@example.ru, webmaster@example.ru.

    • через добавление TXT-записи, которая будет указана в письме, на DNS-сервер вашего домена. После добавления TXT-записи необходимо проверить ее корректность. Сделать это можно с помощью утилиты dig. Веб-версия данной утилиты доступна на: https://www.reg.ru/nettools/dig.

    • Через верификацию посредством правок в коде сайта.

  7. Далее остается дождаться активации сертификата, обычно это происходит в течение 12 часов.

Заказ OV/EV SSL-сертификата:

  1. Выбираем количество доменов/поддоменов для OV SSL: один домен + www-домен или wildcard для домена и его поддоменов. Для EV SSL wildcard сертификаты недоступны.

  2. Далее становится доступным заполнение CSR-запроса.

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

    admin@example.ru, administrator@example.ru, postmaster@example.ru, hostmaster@example.ru, webmaster@example.ru.

    Поэтому, если такой почты нет, то ее необходимо создать. Генерируем CSR-запрос, заполняя все данные на английском языке. На данном этапе необходимо скопировать и сохранить CSR-запрос и приватный ключ у себя на компьютере и далее отправить запрос на выпуск сертификата.

  4. Оплачиваем заказ сертификата любым доступным способом.

  5. На данном этапе начинается долгий процесс активации сертификата, т.к. запускаются проверки, указанные при запросе данных. Если информации, предоставленной при формировании CSR, недостаточно, то центр может запросить дополнительные подтверждающие документы.

  6. После проверки всех данных центр сертификации свяжется с вами по номеру телефона компании из независимых источников для подтверждения заказа.

Выше описаны общие шаги, возникающие при покупке и активации, но у различных сервисов они могут отличаться.

Ниже приведены ссылки на описание шагов у сервиса reg.ru:

После подтверждения всех данных и активации, вам вышлют файлы, необходимые для установки сертификата:

  • SSL- сертификат

  • корневой сертификат

  • промежуточный сертификат

Также у вас должны быть сохранены:

  • приватный ключ

  • CSR-запрос на выпуск сертификата

Заказ Let's Encrypt:

Данный вид сертификата вынесен отдельно, т.к. он предоставляется бесплатно и его установка сводится к 2-м вариантам:

  1. На хостинге (в хостинг-панели) есть возможность автоматической установки сертификата для сайта - в данном случае вся установка сводится к нажатию пары клавиш.

  2. У вас выделенный сервер, тогда устанавливать сертификат придется через консоль - вариант установки описан в статье Базовая настройка сервера для LEMP-стека

Способы установки сертификата

Сначала мы рассмотрим установку сертификата на сайт, а затем работы, которые необходимо выполнить на сайте.

На самом деле установка сертификата для каждого хостинга имеет свою специфику, поэтому мы рассмотрим установку лишь в общих чертах.

Как конкретно установить сертификат на хостинг вашего сайта необходимо уточнять в справочных материалах самого хостинга, например, Как установить SSL на хостинг.

Итак, я разделяю установку сертификата на 3 вида:

  1. Автоматическая установка через хостинг-панель, ISPmanager, cPanel, Plesk

  2. Установка через настройку сервера с помощью тех. поддержки хостинга

  3. Установка через настройку сервера, если у вас VDS/VPS, и хостинг не оказывает услуг по установке сертификатов через тех. поддержку

Подробнее о каждом способе:

  1. Автоматическая установка через хостинг-панель, ISPmanager, cPanel, Plesk - в данном случае нам необходимо просто в соответствующие поля хостинг-панели загрузить или скопировать данные из файлов, которые были получены на предыдущем шаге. Можно воспользоваться следующими статьями:

  2. Установка через настройку сервера с помощью тех. поддержки хостинга - в данном случае (если ваш хостинг предоставляют такую услугу) необходимо создать заявку в поддержку и прикрепить файлы, которые были получены на предыдущем шаге.

  3. Установка через настройку сервера - если у вас VDS/VPS, и хостинг не оказывает услуг по установке сертификатов через тех. поддержку, то вам придется прописывать сертификаты в конфигурации вашего сервера самостоятельно (если опыта настройки серверов и работы с консолью у вас нет, то лучше найти кого-то с опытом администрирования серверов).

После установки необходимо проверить сертификат на корректность, к примеру, сервисом: https://www.ssllabs.com/.

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

В способе 2 и 3 можно произвести более гибкие настройки для улучшения рейтинга сертификата.

Про то, что такое рейтинг сертификата по версии сервиса ssllabs.com, будет рассказано в отдельной статье, сейчас же обращаем внимание на то, чтобы он был A+.

Подготовка сайта для перехода на https будет состоять из следующих шагов:

  1. Смена всех внутренних ссылок с абсолютных на относительные

  2. Смена ссылок на медиа-контент (картинки, видео и т.д.) - все данные должны подтягиваться по протоколу https

  3. Исправление подключений внешних скриптов - все внешние скрипты должны подтягиваться по протоколу https

  4. Загрузка нового sitemap.xml со ссылками на https-версию

  5. Загрузка нового robots.txt со ссылкой на https-версию файла sitemap.xml и измененной директивой Host

Чек-лист по проверке SSL-сертификата

  1. Проверяем рейтинг сертификата сервисом ssllabs.com на соответствие А+

  2. Открываем сайт в браузере и кликаем на замочек рядом с адресом сайта - там не должно быть сообщений об ошибках

Шаг 2 необходимо выполнить на нескольких страницах сайта, для того, чтобы проверить устранен ли весь mix-контент.

Настройка 301 редиректа с http на https-версию

После установки сертификата и настройки сайта нам необходимо установить 301 редиректы с http на https-версию сайта. Сделать это можно несколькими способами:

  1. При установке сертификата через хостинг могут быть настройки для установки редиректов – в этом случае мы просто активируем их.

  2. CMS сайта также может иметь настройку для перехода на https, после активации которой активируются и редиректы.

  3. Настройка редиректов через файл .htaccess.

  4. Настройка редиректа через конфигурацию nginx – рассмотрено в статье Базовая настройка сервера для LEMP-стека.

Добавление сайта в Яндекс.Вебмастер и Google Search Console

После установки сертификата и подготовки сайта к переходу на HTTPS необходимо добавить и подтвердить новый сайт, указав версию https. В списке сайтов будут 2 версии.

Для Google Search Console дополнительных настроек делать не нужно, достаточно присутствия 301 редиректов.

Для Яндекс.Вебмастер необходимо у HTTP-сайта указать главное зеркало HTTPS. Делается это в панели для вебмастеров в меню: "Настройка индексирования" — "Главное зеркало" — "Установить протокол HTTPS".

Если у вас были произведены дополнительные настройки, то их необходимо скопировать в новую HTTPS-версию сайта!

Статистика использования SSL в зоне .RU

В завершении статьи приведу статистику по использованию сертификатов в зоне .RU: https://statonline.ru/metrics/tls_certs_validity?tld=ru.

Сервис удобен тем, что можно оценить какие сертификаты, CA, типы валидации, wildcard больше всего используются в зоне .RU.

Информация предоставляется в удобной форме в виде диаграмм и таблиц со статистикой.

Дата публикации :
Дата редактирования : 2020-11-12 00:23:47
Автор :

Cookies and IP addresses allow us to deliver and improve our web content, resolve technical errors, and provide you with a personalized experience. Our website uses cookies and collects your IP address for these purposes.