Администрирование
Все про SSL

Как браузер работает с SSL сертификатами

6min

Что происходит в браузере при проверке сертификата

Независимо от каких-либо расширений браузеры должны всегда проверять основную информацию о сертификате, такую как подпись или издатель. Шаги проверки информации о сертификате:

  1. Проверка целостности сертификата. Выполняется с помощью криптографической операции Verify, выполняемой с открытым ключом. Если подпись недействительна, то сертификат считается поддельным, который был изменён после его выдачи третьей стороной, и отклоняется.
  2. Проверка действительности сертификата. Выполняется с помощью криптографической операции Decrypt и считыванием сопутствующей информации. Сертификат считается действительным в течение оплаченного клиентом периода либо срока годности. Срок годности сертификата – это срок гарантии подлинности владельца со стороны Удостоверяющего центра, осуществившего его выпуск. Браузеры отклоняют любые сертификаты со сроком годности, истёкшим до или начавшимся после даты и времени проверки.
  3. Проверка статуса отзыва сертификата. Выполняется с помощью криптографической операции Decrypt, загрузкой и сверкой c CRL. Ряд обстоятельств, например, обращение правоохранительных органов, обнаружение изменения исходной информации или подтверждение факта компрометации закрытого ключа сервера могут привести к тому, что сертификат станет недействительным до истечения срока его действия. Для этого сертификат добавляют в CRL на стороне Удостоверяющего центра. Центры сертификации на периодической основе выпускают новую версию подписанного CRL, который распространяется в общедоступных репозиториях. Браузеры получают и просматривают последнюю версию CRL при проверке сертификата. Главный недостаток такого подхода заключается в ограничении проверки периодом выдачи CRL. Браузер будет уведомлён об отзыве только после того, как получит актуальный CRL. В зависимости от политики подписывающего Удостоверяющего центра период обновления CRL может исчисляться неделями. При работе с TLSv2 и TLSv3 браузер может использовать протокол определения состояния сетевого сертификата OCSP, описанного в RFC 6960. OCSP позволяет браузеру запрашивать статус отзыва определённого сертификата в режиме онлайн (операция reply). При корректной настройке OCSP проверка наличия сертификата в CRL выполняется намного быстрее и позволяет избежать использования фактически отозванных сертификатов до следующего обновления CRL. Существует технология OCSP Stapling, позволяющая включать копию ответа на запрос состояния сертификата от Удостоверяющего центра в заголовки HTTP-ответов веб-сервера, что в свою очередь повышает производительность и скорость обмена данными.
  4. Проверка издателя сертификата по цепочке сертификатов. Сертификаты обычно связаны с несколькими Удостоверяющими центрами: корневым, который является владельцем открытого ключа подписи сертификатов, и рядом промежуточных, которые ссылаются на предыдущего владельца открытого ключа вплоть до корневого. Браузеры проверяют сертификаты каждого Удостоверяющего центров на предмет нахождения в цепочке доверия с корневым во главе. Для дополнительной безопасности большинство реализации PKI также проверяют, что открытый ключ Удостоверяющего центра совпадает с ключом, которым был подписан текущий сертификат. Таким образом, определяются самоподписанные сертификаты, т.к. они имеют одного и того же издателя только на том сервере, где были выпущены, либо были добавлены в список корневых сертификатов. Формат X.509 v3 позволяет определять какие именно сертификаты цепочки следует проверить. Данные ограничения редко влияют на обычного пользователя Интернета, хотя они довольно часто встречаются в корпоративных системах на этапе разработки и отладки.
  5. Проверка ограничения доменного имени
    Удостоверяющий центр может ограничивать действие сертификата на сервере с определённым доменным именем или перечнем дочерних доменов организации. Ограничения доменных имён часто используются для сертификатов промежуточного Удостоверяющего центра, приобретённых у Удостоверяющего центра, пользующегося всеобщим доверием, чтобы исключить возможность выпуска им действительных сертификатов для сторонних доменов.
  6. Проверка политики выпуска сертификата
    Политика выпуска сертификатов – это юридический документ, опубликованный Удостоверяющим центром, в котором подробно описываются процедуры выдачи и управления сертификатами. Удостоверяющие центры могут выдавать сертификат в соответствии с одной или несколькими политиками, ссылки на которые добавляются в информацию выпущенного сертификата, чтобы проверяющие стороны могли валидировать данные эти политики, прежде чем принять решение о доверии этому сертификату. Например, могут накладываться ограничения регион или временные (на период технологического обслуживания программного обеспечения Удостоверяющего центра) рамки.
  7. Проверка длины цепочки сертификата
    Формат X.509 v3 позволяет издателям определять максимальное количество промежуточных удостоверяющих центров, которые могут поддерживать сертификат. Данное ограничение было введено после того, как в 2009-м году была продемонстрирована возможность подделки действительного сертификата путём включения самоподписанного сертификата в очень длинную цепочку.
  8. Проверка назначения открытого ключа
    Браузер проверяет назначение открытого ключа, содержащегося в сертификате шифрование, подписи, подпись сертификата и так далее. Браузеры отклоняют сертификаты, например, в случае обнаружения сертификата сервера с ключом, предназначенным только для подписи CRL.
  9. Проверка остальных сертификатов цепочки
    Браузер выполняет проверку каждого сертификата цепочки. Если данные проверки завершились без ошибок, то вся операция считается действительной. Если возникают какие-либо ошибки, то цепочка помечается как недопустимая, и безопасное соединение не устанавливается.

Как посмотреть сведения о сертификате и проверить, что все работает корректно

Сертификат безопасности можно проверить непосредственно в браузере. Все современные браузеры отображают сведения о сертификате непосредственно в адресной строке. Признак установки защищённого соединения с веб-ресурсом представлен в виде замка в левой части адресной строки браузера. В случае ошибки будет отображаться перечёркнутое слово «HTTPS» или пиктограмма в виде открытого замка. В зависимости от вида браузера и его версии вид пиктограмм и поведение при работе с SSL-сертификатами может отличаться. Ниже приведены примеры изображений для различных версий современных браузеров:

Google Chrome

Document image


Mozilla Firefox

Document image


Opera

Document image


Microsoft Edge

Document image


Chrome for Android

Document image


Safari for iOS

Document image


Чтобы посмотреть детали сертификата, кликните по пиктограмме в виде замка и в появившемся меню кликните по пункту, связанному с безопасностью. Информация о сертификате появится после клика по соответствующей кнопке или по информационной ссылке.

Google Chrome

Document image


Mozilla Firefox

Document image


Microsoft Edge

Document image


Chrome for Android

Document image


Сообщение о том, что браузер не доверяет сертификату

В большинстве браузеров отображается предупреждение безопасности. Эти предупреждения информируют о том, что сертификат не прошёл проверку доверенного центра сертификации.

Document image


Существует ряд причин, по которым SSL-сертификат может считаться недействительным в браузере. Наиболее распространённые причины:

  • Ошибки в процессе установки цепочки сертификатов, не хватает промежуточного сертификата;
  • Срок действия SSL-сертификата истёк;
  • SSL-сертификат действителен только для основного домена, а не для поддоменов;
  • Используется самоподписанный SSL-сертификат, или корневой сертификат Удостоверяющего центра не добавлен в список доверенных на текущем устройстве;