Инструкция по переезду на HTTPS
Table of contents
Introduction
В данной статье мы познакомимся с расширением протокола HTTP
(HyperText Transfer Protocol
— протокол передачи гипертекста) для поддержки шифрования,
работающим через транспортные механизмы SSL
и TLS
.
Для чего нужен HTTPS
Основные причины:
-
С июля 2018 года браузер Google Chrome помечает все HTTP-сайты как ненадежные
-
Google рассматривает HTTPS, как фактор ранжирования сайта в поисковой выдаче
-
Безопасность – HTTPS предотвращает перехват и модификацию трафика пользователей
-
Все большую популярность получает технология PWA, для которой HTTPS – это обязательное требование
-
Для регистрации в доменной зоне
.app
необходимо наличие сертификата
Что такое сертификат
Говоря о HTTPS, постоянно упоминаются сертификаты, вкратце разберемся что это и для чего они нужны.
Протоколы SSL
и TLS
используют для шифрования инфраструктуру ключей:
-
Открытый ключ (известен всем) – необходим для шифрования информации
-
Закрытый ключ (известен владельцу) – необходим для расшифровки
Данная схема называется асимметричным шифрованием, а инфраструктура подчиняется стандарту X.509.
Стандарт X.509 определяет понятие «сертификат с открытым ключом» (Согласно RFC 1422
) и его структуру,
в которой хранится информация об открытом ключе, владельце ключа, имени субъекта и т.д.
Данная информация позволяет подтвердить принадлежность открытого ключа его владельцу.
Таким образом сертификат позволяет:
-
Шифровать передаваемую информацию открытым ключом
-
Проверить подлинность ресурса
-
Обеспечить целостность передаваемой информации
Выбор сертификата, исходя из типа сайта
Для выбора сертификата необходимо понимать какие варианты бывают:
-
По уровню валидации:
-
SSL-сертификаты домена (Domain Validation, DV) – доступен физическим и юридическим лицам, подтверждает лишь право владения доменом. Возможно получить практически моментально. Распространены бесплатные версии данного сертификата.
-
SSL-сертификаты организации (Organization Validation, OV) – доступен только юридическим лицам, подтверждает не только право владения доменом, но и проверяет существование организации, из-за чего получение может затягиваться на несколько дней.
-
SSL-сертификаты высокой надежности (Extended Validation, EV SSL) – доступен только юридическим лицам, подтверждает не только право владения доменом, но и проверяет существование организации, расширенная проверка юридического существования организации, адресная строка подсвечивается зеленым цветом, один из самых дорогих типов сертификата.
-
-
По способу получения:
-
«пустой» сертификат – сертификат, содержащий фиктивную информацию, используемую в качестве временной, для настройки SSL и проверки его функциональности в данной среде.
-
самоподписанный сертификат – сертификат, созданный самим пользователем — в этом случае издатель сертификата совпадает с владельцем сертификата. Браузер проверяет выдан ли сертификат известным CA, и если нет, то выдает предупреждение, что сертификат не является доверенным.
-
сертификат, выданный Центром Сертификации (Certificate Authority, CA) – CA подтверждает подлинность вашей организации, пользуясь своей репутацией.
-
-
По платности:
-
бесплатные – Let’s Encrypt, а также бесплатно могут выдаваться сертификаты различными хостинг-провайдерами в качестве бонуса за использование других услуг, к примеру, Amazon. Но, как правило, бесплатные сертификаты предоставляются лишь для уровня Domain Validation.
-
платные – CA берет плату за пользование их репутацией.
-
-
По числу поддерживаемых доменов:
-
Основной домен и www-поддомен – сертификат действует только на example.ru и www.example.ru.
-
Wildcard – домен и поддомены – сертификат действует на все поддомены домена *.example.ru (для каждого уровня поддоменов нужен свой сертификат).
-
Для продвижения в большинстве случаев подойдут бесплатные сертификаты DV SSL, но нужно ориентироваться также и на тип сайта. Рекомендованные типы сертификатов, исходя из типа сайта:
DV SSL | OV SSL | EV SSL | |
---|---|---|---|
Блог | + | +/- | +/- |
Форум | + | +/- | +/- |
Социальная сеть | + | +/- | +/- |
Интернет-магазин | +/- | + | +/- |
Малый бизнес | + | +/- | +/- |
Средний и крупный бизнес | - | + | +/- |
Сайт организации | +/- | + | +/- |
Финансовая организация (Банк) | - | - | + |
Платежная система | - | - | + |
Конечно же, если вы являетесь юридическим лицом, то и на сайт типа "блог" можно установить сертификат EV SSL, но это необязательно, поэтому таблица носит рекомендательный характер и подбирать сертификат для сайта стоит исходя из факторов:
-
Степень доверия, которую вы хотите обеспечить ресурсу
-
Бюджет на покупку сертификата
-
Сертификат приобретается для физического или юридического лица
-
Количество поддоменов, для которых необходим сертификат
Бесплатный | 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-сертификата:
-
Выбираем количество доменов/поддоменов: один домен + www-домен или wildcard для домена и его поддоменов.
-
Оплачиваем заказ сертификата любым доступным способом.
-
Указываем запрашиваемые контактные данные для выпуска сертификата.
-
После заполнения данных становится доступным CSR-запрос (Certificate Signing Request, зашифрованный запрос на выпуск сертификата, содержащий введенные ранее данные) и приватный ключ.
На некоторых площадках может быть доступно только поле для ввода CSR, тогда придется сгенерировать ключ другим сервисом, к примеру, https://www.reg.ru/ssl-certificate/generate_key_and_csr, или через консоль утилитой openssl, но такие площадки встречаются редко и как правило предоставляется генератор, встроенный в площадку.
На данном этапе необходимо скопировать и сохранить CSR-запрос и приватный ключ у себя на компьютере и далее отправить запрос на выпуск сертификата.
-
После отправки запроса на выпуск сертификата необходимо дождаться письма на оставленную контактную почту. В данном письме будут дальнейшие инструкции по активации сертификата.
-
Активация сертификата может происходить несколькими способами:
-
через 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.
-
Через верификацию посредством правок в коде сайта.
-
-
Далее остается дождаться активации сертификата, обычно это происходит в течение 12 часов.
Заказ OV/EV SSL-сертификата:
-
Выбираем количество доменов/поддоменов для OV SSL: один домен + www-домен или wildcard для домена и его поддоменов. Для EV SSL wildcard сертификаты недоступны.
-
Далее становится доступным заполнение CSR-запроса.
-
Здесь для проверки нам понадобится определенного вида почта на домене, для которого идет оформление сертификата:
admin@example.ru, administrator@example.ru, postmaster@example.ru, hostmaster@example.ru, webmaster@example.ru.
Поэтому, если такой почты нет, то ее необходимо создать. Генерируем CSR-запрос, заполняя все данные на английском языке. На данном этапе необходимо скопировать и сохранить CSR-запрос и приватный ключ у себя на компьютере и далее отправить запрос на выпуск сертификата.
-
Оплачиваем заказ сертификата любым доступным способом.
-
На данном этапе начинается долгий процесс активации сертификата, т.к. запускаются проверки, указанные при запросе данных. Если информации, предоставленной при формировании CSR, недостаточно, то центр может запросить дополнительные подтверждающие документы.
-
После проверки всех данных центр сертификации свяжется с вами по номеру телефона компании из независимых источников для подтверждения заказа.
Выше описаны общие шаги, возникающие при покупке и активации, но у различных сервисов они могут отличаться.
Ниже приведены ссылки на описание шагов у сервиса reg.ru:
После подтверждения всех данных и активации, вам вышлют файлы, необходимые для установки сертификата:
-
SSL- сертификат
-
корневой сертификат
-
промежуточный сертификат
Также у вас должны быть сохранены:
-
приватный ключ
-
CSR-запрос на выпуск сертификата
Заказ Let's Encrypt:
Данный вид сертификата вынесен отдельно, т.к. он предоставляется бесплатно и его установка сводится к 2-м вариантам:
-
На хостинге (в хостинг-панели) есть возможность автоматической установки сертификата для сайта - в данном случае вся установка сводится к нажатию пары клавиш.
-
У вас выделенный сервер, тогда устанавливать сертификат придется через консоль - вариант установки описан в статье Базовая настройка сервера для LEMP-стека
Способы установки сертификата
Сначала мы рассмотрим установку сертификата на сайт, а затем работы, которые необходимо выполнить на сайте.
На самом деле установка сертификата для каждого хостинга имеет свою специфику, поэтому мы рассмотрим установку лишь в общих чертах.
Как конкретно установить сертификат на хостинг вашего сайта необходимо уточнять в справочных материалах самого хостинга, например, Как установить SSL на хостинг.
Итак, я разделяю установку сертификата на 3 вида:
-
Автоматическая установка через хостинг-панель, ISPmanager, cPanel, Plesk
-
Установка через настройку сервера с помощью тех. поддержки хостинга
-
Установка через настройку сервера, если у вас VDS/VPS, и хостинг не оказывает услуг по установке сертификатов через тех. поддержку
Подробнее о каждом способе:
-
Автоматическая установка через хостинг-панель, ISPmanager, cPanel, Plesk - в данном случае нам необходимо просто в соответствующие поля хостинг-панели загрузить или скопировать данные из файлов, которые были получены на предыдущем шаге. Можно воспользоваться следующими статьями:
-
Установка через настройку сервера с помощью тех. поддержки хостинга - в данном случае (если ваш хостинг предоставляют такую услугу) необходимо создать заявку в поддержку и прикрепить файлы, которые были получены на предыдущем шаге.
-
Установка через настройку сервера - если у вас VDS/VPS, и хостинг не оказывает услуг по установке сертификатов через тех. поддержку, то вам придется прописывать сертификаты в конфигурации вашего сервера самостоятельно (если опыта настройки серверов и работы с консолью у вас нет, то лучше найти кого-то с опытом администрирования серверов).
После установки необходимо проверить сертификат на корректность, к примеру, сервисом: https://www.ssllabs.com/.
Способ 1 самый простой, но в данном случае к сертификату будут применены общие настройки, которые невозможно будет изменить и это может влиять на рейтинг сертификата.
В способе 2 и 3 можно произвести более гибкие настройки для улучшения рейтинга сертификата.
Про то, что такое рейтинг сертификата по версии сервиса ssllabs.com, будет рассказано в отдельной статье, сейчас же обращаем внимание на то, чтобы он был A+.
Подготовка сайта для перехода на https будет состоять из следующих шагов:
-
Смена всех внутренних ссылок с абсолютных на относительные
-
Смена ссылок на медиа-контент (картинки, видео и т.д.) - все данные должны подтягиваться по протоколу https
-
Исправление подключений внешних скриптов - все внешние скрипты должны подтягиваться по протоколу https
-
Загрузка нового sitemap.xml со ссылками на https-версию
-
Загрузка нового robots.txt со ссылкой на https-версию файла sitemap.xml и измененной директивой Host
Чек-лист по проверке SSL-сертификата
-
Проверяем рейтинг сертификата сервисом ssllabs.com на соответствие А+
-
Открываем сайт в браузере и кликаем на замочек рядом с адресом сайта - там не должно быть сообщений об ошибках
Шаг 2 необходимо выполнить на нескольких страницах сайта, для того, чтобы проверить устранен ли весь mix-контент.
Настройка 301 редиректа с http на https-версию
После установки сертификата и настройки сайта нам необходимо установить 301 редиректы с http на https-версию сайта. Сделать это можно несколькими способами:
-
При установке сертификата через хостинг могут быть настройки для установки редиректов – в этом случае мы просто активируем их.
-
CMS сайта также может иметь настройку для перехода на https, после активации которой активируются и редиректы.
-
Настройка редиректов через файл .htaccess.
-
Настройка редиректа через конфигурацию 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
Автор : Rosko