Электронный паспорт сайта
Шифровать соединение мало: нужно ещё убедиться, что на другом конце именно тот сервер, к которому вы шли, а не подставной. Для этого служит сертификат. Это небольшой файл, в котором записано, какому доменному имени он выдан, кем выдан, на какой срок и какой открытый ключ у владельца.
Когда сервер присылает сертификат, браузер проверяет подпись выдавшей организации, срок действия и совпадение имени. Только после этого начинается обмен зашифрованными данными. Так исключается ситуация, когда посредник выдаёт себя за сайт.
На практике вы этого не замечаете: проверка происходит за доли секунды при каждом новом соединении. Заметным становится только сбой, когда браузер показывает страницу с красным предупреждением и предлагает вернуться назад.
Откуда берётся доверие
Доверие строится цепочкой. Сайт получает сертификат от удостоверяющего центра (УЦ), который проверил его владельца в той мере, какая принята для данного типа. Этот центр, в свою очередь, подписан более высоким, и так до корневого сертификата, который заранее встроен в операционную систему или браузер.
Поэтому вы доверяете не каждому сайту отдельно, а списку корневых УЦ, которые ведут разработчики программ. Если корневой сертификат УЦ будет исключён из списка, все его выпущенные сертификаты перестанут считаться надёжными. Такие случаи известны в отрасли.
Кроме того, браузеры проверяют, не отозван ли сертификат. Отзыв нужен, если закрытый ключ владельца утёк или сертификат был выдан по ошибке. Информация об отзыве публикуется в специальных списках или запрашивается у центра по сети, и современные браузеры используют ещё и собственные сводные списки.
Что можно прочитать внутри
Откройте сведения о сертификате в браузере: там указаны субъект (кому выдан), издатель, срок действия «с» и «по», список имён, для которых он действителен, алгоритм подписи и отпечаток. Один сертификат может охватывать несколько имён или все поддомены сразу (подстановочный сертификат).
Бывают разные уровни проверки: домен-валидный подтверждает только контроль над доменом и выдаётся автоматически, организационный подтверждает ещё и данные организации. Для защиты соединения шифрование одинаково у обоих, разница в объёме проверки владельца.
Почему браузер показывает предупреждение
Самые частые причины: срок действия истёк (владелец забыл продлить), имя в сертификате не совпадает с адресом, сертификат подписан неизвестным центром (самоподписанный), цепочка настроена неполно. На стороне пользователя причиной оказывается неверное время на устройстве или программа, вмешивающаяся в соединение.
Не стоит нажимать «всё равно перейти» на сайтах, где вводите пароли или платёжные данные. Для собственного тестового сервера в локальной сети самоподписанный сертификат приемлем, если вы сами доверяете ему и понимаете причину предупреждения.
Срок жизни и автоматическое продление
Сертификаты выдают на ограниченный срок, и он со временем сокращался. Сейчас типичны сроки в несколько месяцев, и продление автоматизируют программами, которые получают новый сертификат перед истечением. Короткий срок уменьшает вред при утечке ключа.
Если сайт вдруг стал недоступен с ошибкой сертификата ровно в определённый день, вероятнее всего, автоматика продления у владельца сломалась. Сообщите ему: у вас исправить ничего нельзя.
Для владельцев сайтов есть и обратная сторона: при переезде на новый сервер сертификат приходится устанавливать заново, а при ошибках в настройке цепочки одни устройства открывают сайт, а другие нет. Особенно часто это касается старых телефонов, у которых в системе нет новых корневых сертификатов.
Мифы и практика проверки
Наличие сертификата не означает, что сайт честный. Он лишь подтверждает, что соединение защищено и адрес принадлежит тому, кто указан. Мошенники тоже получают сертификаты для своих доменов. Поэтому внимательно читайте адрес, а не ориентируйтесь на один замок. Проверить сайт можно через кнопку возле адресной строки, а серверы через онлайн-проверки и утилиту openssl.
Бывает и вмешательство со стороны: некоторые антивирусы и корпоративные шлюзы намеренно подменяют сертификаты, чтобы проверять шифрованный трафик. Чтобы это работало без ошибок, на устройство устанавливают их собственный корневой сертификат. Если вы не настраивали ничего подобного, посмотрите, кто указан издателем сертификата для знакомого сайта: неожиданный издатель повод насторожиться.