Использовать зашифрованный канал при передачи данных между клиентом и сервером с последнее время уже становится правилом хорошего тона. Очень много личной информации пользователи доверяют онлайн-сервисам. Если владельцы сервисов могут обеспечить их сохранность в рамках сервера или дата-центра, то при передачи данных по сети злоумышленники могут легко перехватить их.
Решить эту проблему может установка безопасного соединения между клиентом и сервером. На HTTP-сервере должны находиться сертификат открытого ключа, который будет использоваться для шифрования. Этот сертификат подтверждает факт соответствия ключа и домена или принадлежность ключа персоне или организации, владеющей сайтом.
Сертификаты выпускают специальные центры сертификации (Certification Authorities). Они проверяют данные, которые вы им предоставили и присылают подписанный ими сертификат. По степени тщательности проверки данных в центре сертификации сертификаты принято делить на три группы:
- сертификаты для домена;
- сертификаты для организации;
- сертификаты с расширенной проверкой данных.
Выпуская сертификат для домена, центр сертификации проверяет только то, что лицо, подавшее заявку на выпуск, обладает полномочиями управлять этим доменом. Как правило, в этом случае просят указать определённую DNS-запись в домене или сообщить код, отправленный на служебный почтовый ящик. Это самый примитивный способ проверки, который может быть выполнен в автоматическом режиме.
Let’s Encrypt
Новый центр сертификации Let’s Encrypt запустил сервис по выпуску и обновлению сертификатов для доменов, который требует минимальное количество ручной работы. Администратор сервер запускает скрипт, который связывается с центром сертификации, проходит требуемые проверки и сохраняет полученные сертификаты на диск. Для популярных серверов Apache и Nginx даже будут внесены соответствующие изменения в конфигурации.
Подробнее процесс установки описан в инструкции.
Самое приятное, что этот сервис абсолютно бесплатный.
Проверка правильности конфигурации
Во время настройки сервера я рекомендую сверяться с чеклистом:
И проверить настройки сервера с помощью онлайн-сервиса.
Плюсы и минусы
Бесплатные TLS-сертификаты прекрасно подходят для «домашних» проектов, блогов и некоммерческих сайтов.
Но из-за того, что сертификат для домена не гарантирует принадлежность сайта конкретной организации или частному лицу, использовать их для корпоративных сайтов или защиты платёжных данных не стоит. Увы, сертификаты, дающие зелёную подсветку адресной строки, можно только купить.
Переходи на HTTPS!
И в заключении хочу поделиться слайдами и видео моей презентации «Переходи на HTTPS!»
Коментарии к заметке
Владимир, подскажите, пожалуйста. А если мой хостинг позволяет мне в один клик установить сертификат от Let’s Encrypt (т.е. я не вижу сертификат и первичный ключ) и все, вроде, нормально, но вдруг, в наше нестабильное время, хостинг исчезнет, то это может принести неприятности, или я смогу сформировать новый сертификат от Let’s Encrypt на тот же домен, на другом хостинге? (доступ к домену останется)
Ничего страшного не произойдёт. Вы можете выпускать столько сертификатов для домена, сколько потребуется. Ключ тоже можно (и нужно) менять.
Спасибо. Осталось дождаться нормальной поддержки перехода сайта на https в Яндексе (без потери позиций) и можно переводить старые проекты.
У меня есть 2 кириллических домена в зоне РФ и РУС. Например:
Так вот к первому я могу прицепить такой сертификат а ко второму — нет! Что делать ума не приложу. Хостер говорит что там символов к в ключе ограниченное количество. Я ни черта не понимаю но хочу решить проблему. Как можно сделать это? Спасибо
Сергей, я сам не выпускал сертификатов для кириллических доменов. Ничего тут определённого посоветовать не могу.
Я бы попробовал использовать Punycode вместо русских букв, как вариант.