Об этом инструменте
Сертификат X.509 — это стандартный формат, лежащий в основе HTTPS, подписи кода, аутентификации клиентов и большинства других инфраструктур открытых ключей (PKI) в интернете. Под значком замка, который показывает браузер, скрывается строго структурированный документ ASN.1, бинарно закодированный по правилам DER (Distinguished Encoding Rules), а затем обёрнутый в Base64 между маркерами `-----BEGIN CERTIFICATE-----` / `-----END CERTIFICATE-----`, чтобы его можно было скопировать и вставить как обычный текст — именно эту комбинацию все называют «PEM».
Этот декодер включает собственный минимальный DER/ASN.1-ридер, написанный с нуля без каких-либо внешних библиотек для работы с сертификатами, чтобы пройтись по этому бинарному дереву и показать поля, которые действительно интересуют людей: кому выдан сертификат (Субъект) и кем (Издатель), его серийный номер и версию X.509, срок действия, а также алгоритмы, использованные для подписи и генерации открытого ключа. Он отмечает самоподписанные сертификаты (издатель и субъект совпадают) и уже просроченные.
Всё выполняется локально в вашем браузере — вставленный текст сертификата разбирается на вашем устройстве и никогда его не покидает. Это делает безопасным изучение сертификата, полученного с сервера, из артефакта CI-конвейера или из файла `.pem`/`.crt`, прежде чем решить, доверять ли ему, без вставки чувствительных инфраструктурных данных в сторонний сервис.
Частые вопросы
Что значит «самоподписанный» и является ли это проблемой?
Самоподписанный сертификат имеет одинакового издателя и субъекта — он не был подтверждён доверенным центром сертификации. Это нормально и подходит для локальной разработки, внутренних инструментов или тестирования, но браузеры покажут предупреждение о доверии на публичном сайте, поскольку такой сертификат может создать кто угодно.
Загружаются ли данные моего сертификата куда-либо?
Нет — вставленный текст PEM полностью разбирается вручную написанным JavaScript, работающим во вкладке вашего браузера. Ничего не отправляется ни на какой сервер, что важно, поскольку сертификаты иногда могут содержать внутренние имена хостов или другие конфиденциальные метаданные.