Любой сайт имеет в адресе страниц приставку http//.
http – это сетевой протокол (технические правила), позволяющий браузеру загружать веб-страницы. Данные, передаваемые по протоколу http, не защищены, то есть они не шифруются.
https – это доработанный протокол, который обладает большей защитой данных.
Чтобы перевести сайт со стандартного http-протокола на защищенный https, вам нужен SSL-сертификат.
Как работает https-протокол
Как было сказано выше, https (http Secure) – это расширение протокола http, при котором используется зашифрованное соединение.
Работает это так:
1. Пользователь вводит имя сайта в браузере.
2. Браузер “спрашивает” у сервера, установлен ли на этом сайте SSL-сертификат.
3. Сервер в ответ на запрос браузера пользователя отправляет копию SSL-сертификата и публичный ключ.
4. Браузер проверяет подлинность сертификата, запрашивая информацию о нем у центра сертификации, который его выдал.
5. Если информация подтверждается, то браузер генерирует сеансовый ключ, зашифровывает его полученным публичным ключом и посылает на сервер.
6. Сервер расшифровывает это сообщение и сохраняет сеансовый ключ.
7. После этого между сервером и браузером устанавливается безопасное (зашифрованное) соединение по протоколу https.
Зачем нужен https-протокол
Сайт может функционировать с базовым протоколом http. Посетителям будут доступны все страницы, изображения, видео и т.д., но владельцам стоит учитывать требования поисковых систем и заботиться о безопасности пользователей:
- сайты с https будут иметь лучшие показатели в поисковой выдаче;
- пользователям небезопасно вводить свои личные данные (например, пароли, номера банковских карт) на сайтах с http, где их легче похитить злоумышленникам.
Сайты, работающие по защищенному протоколу https, сложнее взломать, и они безопаснее для пользователей.
Как устроен SSL-сертификат
SSL (англ. Secure Sockets Layer переводится как “слой защищенных подключений”) – это криптографический протокол, который создан для безопасного обмена и хранения информации на сайтах.
Официальные SSL-сертификаты распространяются в виде набора текстовых файлов – ключей. SSL-сертификаты различаются по используемому методу проверки прав владельца на его выпуск. Самый простой вариант – это проверка прав владения доменом. В более сложных вариантах сертификатов, которые обеспечивают защиту инфраструктуры целого предприятия, нужна проверка информации о компании.
Цифровой сертификат содержит следующую информацию:
- назначение сертификата об обеспечении безопасного соединения между браузером и сервером;
- доменное имя, на которое оформлен SSL-сертификат;
- юридическое лицо, которое владеет сертификатом;
- физическое местонахождение владельца сертификата (город, страна);
- дату выдачи и дату окончания действия сертификата;
- название удостоверяющего центра сертификации;
- используемый алгоритм шифрования;
- публичный ключ, применяемый сервером.
Эта информация позволяет браузеру клиента:
1. Проверить достоверность сертификата.
2. Установить, что он был выпущен доверенной организацией специально для конкретного домена.
3. Сделать вывод, что устанавливаемое с сервером соединение – безопасное.
Дополнительные возможности
1. SSL-сертификат может быть выпущен для одного или нескольких “зеркал” доменных имен, например, mail.ru и www.mail.ru.
2. Существуют сертификаты, которые, кроме основного домена, защищают все его поддомены – wildcard сертификаты (poddomen1.site.com, poddomen2.site.com).
3. Особая категория SSL-сертификатов – это мультидоменные сертификаты, защищающие сразу несколько доменов.
Как посмотреть информацию о сертификате
Если сайт использует SSL-сертификат, то знак “замок” в адресной строке браузера будет закрыт. Если сертификата нет, то открыт.
Браузер предоставляет пользователю полную информацию о применяемом на сайте SSL-сертификате.
1. Чтобы просмотреть ее в браузере Google Chrome, нажмите на значок в начале адресной строки браузера.
3. Открывшееся окно покажет всю информацию о сертификате:
- для какого домена создан;
- название выпустившей сертификат организации;
- срок действия сертификата.
4. Специалисты могут просмотреть дополнительную техническую информацию о сертификате и участвовавших в его выпуске организациях в закладках “Details” и “Certification Path”.
Взаимодействие с браузером
В браузеры встроены сертификаты всех официальных удостоверяющих центров:
- Verisign;
- NortonLifeLock (бывшая Symantec Corporation);
- RapidSSL;
- Comodo;
- Let’s Encrypt;
- и другие.
Браузер смотрит, какой именно центр выпустил SSL-сертификат, и с помощью соответствующего публичного ключа проверяет его достоверность. При успешной проверке сертификата происходит подключение к сайту по HTTPS, а в случае ошибки браузер покажет пользователю предупреждение о том, что сайт небезопасен.
Виды SSL-сертификатов
Различают три вида SSL-сертификатов.
- платные официальные сертификаты, выданные одним из доверенных центров;
- бесплатные сертификаты от Let’s Encrypt;
- самоподписанные (самозаверенные, self-signed certificate).
Как получить официальный сертификат для сайта
Для большинства сайтов будет достаточно установить SSL-сертификат начального уровня с проверкой домена (DV-сертификаты, от английского Domain Validation).
Время выдачи таких сертификатов занимает лишь несколько минут.
1. Зайдите в наш каталог и выберите надежную компанию, предлагающую SSL-сертификаты.
2. Зарегистрируйтесь на сайте компании и укажите информацию о себе.
3. Подтвердите, что именно вы являетесь владельцем домена.
4. Создайте запрос на получение сертификата.
5. SSL-сертификат будет сгенерирован автоматически.
Есть несколько способов подтверждения владения доменом:
- Проверка через электронную почту. Центр сертификации высылает вам проверочный e-mail, в котором будет ссылка для подтверждения домена. Отправить такое письмо могут либо на почту, указанную в информации по домену, либо на один из адресов, относящихся к конкретному домену: admin@, administrator@, hostmaster@, postmaster@, webmaster@
- Проверка при помощи DNS-записи. При этом способе вам необходимо создать особую запись в DNS-зоне домена, и затем программное обеспечение центра сертификации проверит ее наличие.
- Проверка через протокол HTTP. Со стороны организации, выпускающей сертификат, вам будет предоставлен специальный файл с определенным названием и содержимым. Его необходимо загрузить на свой сайт, после чего центр сертификации проверит его доступность по протоколу HTTP и подтвердит возможность выдачи сертификата.
Официальные SSL-сертификаты – платные. Такие сертификаты выпускаются на срок 1-4 года. Стоимость, в зависимости от срока действия, начинается от 3-5 USD.
Пример получения официального сертификата у провайдера Reg.ru
1. При заказе официального SSL-сертификата у провайдера Reg.ru введите свои контактные данные для его выпуска.
2. Скачайте на свой компьютер необходимые для установки сертификата файлы, включая его приватный ключ.
3. На контактный e-mail вам будет прислано письмо с инструкцией по активации сертификата (это делается через добавление специальной записи в DNS).
Согласно инструкции от Reg.ru, при заказе SSL-сертификатов время их активации может составить до 12-ти часов.
Как получить бесплатный сертификат от Let’s Encrypt
Для популяризации протокола HTTPS компания Google создала специальную систему выпуска бесплатных официальных сертификатов – Let’s Encrypt.
Эти бесплатные сертификаты имеют ограничение срока действия в три месяца.
Существуют три способа получения бесплатного сертификата от Let’s Encrypt:
1. В админ-панели провайдера.
2. В панели управления хостингом.
3. Сгенерировать сертификат на сервере (для VPS и выделенных серверов).
Получение сертификата у провайдера
Получить бесплатный SSL-сертификат у провайдера можно в один клик.
Например, у провайдера Beget достаточно просто нажать кнопку “Установить”.
Получение сертификата в панели управления
В большинство популярных панелей управления хостингом встроена поддержка сертификатов от Let’s Encrypt.
Например, в ISPmanager вы можете быстро создать сертификат, просто указав в соответствующей форме название домена.
Входящее в состав панели программное обеспечение автоматически выполнит процедуру валидации домена (Через DNS или через HTTP), а также будет делать автоматическое обновление сертификата каждые три месяца.
Генерация сертификата Let’s Encrypt на сервере
Пользователи услуги VPS и выделенных серверов могут применить специальное программное обеспечение от Let’s Encrypt и создать бесплатный сертификат для сайтов на свой сервер. Также существует механизм автоматического обновления этих сертификатов.
Для автоматизированного получения SSL-сертификата был разработан скрипт certbot (или certbot-auto для некоторых версий).
Скрипт работает с web-серверами:
Он считывает список работающих на сервере сайтов и предлагает установить для них сертификаты. Например, так выглядит работа скрипта с web-сервером Apache:
1. Запустите команду “certbot –apache”.
2. Сertbot находит все настроенные на сервере web-сайты, формирует из них список и предлагает вам указать нужные домены из этого списка для установки сертификатов.
5. После окончания своей работы скрипт certbot выведет на экран информацию о том, для каких доменов были выпущены SSL-сертификаты и в каких папках на сервере находятся файлы с ключами от сертификатов.
Создание самоподписанного сертификата на сервере
Самоподписанные сертификаты генерируются владельцем сервера и домена самостоятельно. Подходит только для владельцев виртуальных и выделенных серверов под управлением Linux.
Самоподписанные сертификаты:
- не могут удостоверить собой подлинность сайта;
- не подходят для полноценной работы сайта с пользователями по протоколу HTTPS, потому что браузер не сможет проверить достоверность такого сертификата и выдаст соответствующее предупреждение.
Но такие сертификаты могут:
- обеспечить работу по протоколу HTTPS на сайтах, которые применяются тем же человеком или организацией, которые сгенерировали самоподписанный сертификат. Например, такой сертификат подойдет для доступа к панели управления сервером для его владельца.
- использоваться во внутренней сети предприятия или организации.
Для создания самоподписанного сертификата используется набор инструментов из библиотеки OpenSSL.
Для генерации SSL-сертификата из командной строки используйте команду:
# openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout /home/ssl/my_key.key -out /home/ssl/my_cert.crt
Будут запрошены:
- пароль для файла с сертификатом;
- данные о владельце сертификата (страна, город, название организации).
Самый главный параметр, который попросит ввести программа OpenSSL – это Common Name – адрес домена, для которого используется сертификат.
После выполнения данной команды на сервере в каталоге /home/ssl будут сгенерированы файлы сертификата: публичный ключ – в файле my_cert.crt и приватный ключ – в файле my_key.key.
Выводы
1. SSL-сертификаты обеспечивают соединение пользователя с сервером сайта по протоколу https, который более безопасен, чем привычный http.
2. Наличие SSL-сертификата гарантирует лучшее ранжирование сайта поисковыми системами.
3. Сертификаты бывают платными (выданными официальными центрами сертификации), бесплатными (от Let’s Encrypt) и самоподписанными.
4. Для сайтов, связанных с электронной торговлей, лучше использовать официальные сертификаты. Для небольших проектов начинающих вебмастеров подойдут бесплатные сертификаты от Let’s Encrypt. Для сайтов, которые используются во внутренней сети предприятия, можно применять самоподписанные сертификаты.