Как расшифровать сертификат
- Вставьте сертификат в поле вместе со строками
-----BEGIN CERTIFICATE-----и-----END CERTIFICATE-----. «Сырой» DER в Base64 без этих строк и hex-дамп, начинающийся с30 82, тоже принимаются. - Или перетащите в поле файл
.pem,.crt,.cer,.der,.p7bили.crl. Двоичные файлы DER работают, конвертировать их заранее не нужно. - Читайте карточку. Каждый объект во вводе получает свою, так что
fullchain.pemс тремя сертификатами покажет три карточки. - Если нужно «сырое» дерево, раскройте Структура ASN.1 под карточкой. Это пригодится, например, чтобы найти расширение, которое сводка перечисляет в Другие расширения.
Кнопка Пример загружает демонстрационный сертификат, если хочется просто посмотреть, как всё устроено.
Что показывает декодер
| Поле | На что смотреть |
|---|---|
| Субъект, Издатель | Для кого сертификат и кто его подписал. При совпадении значений ставится отметка о самоподписанном сертификате. |
| Действителен с / Действителен до | Сколько осталось дней и предупреждение, если сертификат истёк, ещё не действует или до истечения меньше 30 дней. |
| Альтернативные имена (SAN) | Имена хостов и IP, для которых действителен сертификат. Браузеры сверяют имя хоста с этим списком и игнорируют CN. |
| Открытый ключ, Алгоритм подписи | Например, EC P-256 с ecdsa-with-SHA256 или RSA с его длиной в битах. |
| Использование ключа, Расширенное использование ключа | Сертификату TLS-сервера нужен serverAuth в EKU. |
| Основные ограничения | CA:TRUE отмечает промежуточный или корневой сертификат. |
| ID ключа субъекта, ID ключа центра сертификации | AKI сертификата равен SKI сертификата, который его выпустил; по этому признаку цепочку и выстраивают по порядку. |
| Точки распространения CRL, OCSP, Издатели CA | Показываются простым текстом. Страница их не загружает. |
| Отпечатки SHA-1 и SHA-256 | Хеши всего DER; именно их сравнивают менеджеры сертификатов и конфиги пиннинга. |
| SPKI-пин SHA-256 | SHA-256 только открытого ключа в Base64. Не меняется, если сертификат перевыпущен с тем же ключом. |
Цепочки, бандлы и смешанные файлы
Серверы обычно отдают цепочку: сначала конечный сертификат, затем один или несколько промежуточных. Вставьте весь fullchain.pem и пройдитесь по карточкам: издатель в карточке 1 должен быть субъектом в карточке 2, и значения AKI/SKI должны сходиться точно так же. Неправильный порядок или пропущенный промежуточный сертификат обычно и вызывает ошибки «unable to get local issuer certificate» в клиентах, которые сами не догружают промежуточные сертификаты.
Бандл PKCS#7 (-----BEGIN PKCS7-----, часто .p7b из Windows или портала CA) тоже открывается, и каждый сертификат внутри получает свою карточку. В одну вставку можно смешать и разные типы объектов: сертификат, его CSR и его закрытый ключ. Если три строки SPKI-пин SHA-256 совпадают, ключ, запрос и сертификат относятся к одной паре ключей.
Как узнать данные сертификата по первым символам
Без строк-заголовков от сертификата остаётся просто Base64 от DER, а DER всегда начинается с байта SEQUENCE 0x30. Отсюда несколько префиксов, которые полезно знать:
| Начинается с | Обычно это |
|---|---|
MIIB | DER размером 260–515 байтов, например небольшой EC-сертификат (пример ниже занимает 443 байта) |
MIIC | DER размером 516–771 байт |
MIID, MIIE, MIIF | DER размером 772–1 539 байтов, типичный размер сертификата RSA-2048 |
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE | Открытый ключ EC P-256 (SPKI) |
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A | Открытый ключ RSA-2048 (SPKI) |
Четвёртый символ зависит от байтов длины, поэтому он меняется с размером. Больше шаблонов собрано в статье о частых префиксах Base64.
Как расшифровать сертификат через OpenSSL
Те же поля из командной строки:
openssl x509 -in cert.pem -noout -text
openssl x509 -in cert.pem -noout -subject -issuer -dates -ext subjectAltName
openssl x509 -in cert.pem -noout -fingerprint -sha256
openssl x509 -in cert.pem -noout -pubkey | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl base64
Последняя строка выводит SPKI-пин, и он совпадает с пином, показанным здесь. Чтобы получить цепочку, которую отдаёт живой сервер, выполните openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null и вставьте вывод: декодер сам выберет блоки PEM из окружающего текста. Больше однострочников собрано на странице про Base64 в OpenSSL.
Частые проблемы
- «Найдена строка —–BEGIN, но нет парной строки —–END»: копия обрезана. Скопируйте заново или перетащите файл.
- «Это не PEM и не корректный DER в Base64»: обычно это двоичный файл, открытый в текстовом редакторе и вставленный оттуда, или Base64, потерявший символы по пути через мессенджер или почтовый клиент.
- «Это открытый ключ SSH, а не PEM»: строкам
ssh-ed25519 AAAA…место в инструменте для отпечатков SSH-ключей. Это же касается-----BEGIN OPENSSH PRIVATE KEY-----. - Вместо отпечатков написано «Нужна защищённая страница (https)»: хеши считаются через WebCrypto API браузера, который работает только на https или localhost. Откройте страницу по https.
- Файл
.pfxили.p12: содержимое PKCS#12 зашифровано паролем экспорта, поэтому показать можно только внешнюю структуру. Сначала извлеките сертификат командойopenssl pkcs12 -in file.pfx -nokeys -out cert.pem.
Вопросы и ответы
Как проверить, когда истекает SSL-сертификат?
Вставьте его в поле выше и посмотрите на Действителен до: декодер допишет, сколько осталось дней, и предупредит, если осталось меньше 30 или дата уже прошла. В терминале ту же дату выводит openssl x509 -in cert.pem -noout -enddate.
Чем отличаются файлы .pem, .crt и .cer?
Расширение здесь лишь соглашение. Файл .pem всегда содержит текст Base64 со строками -----BEGIN, а .crt и .cer могут быть как таким текстом, так и двоичным DER. Перетащите файл сюда: декодер прочитает оба варианта.
Проверяет ли инструмент цепочку сертификатов или отзыв?
Нет. Он читает все поля, но не проверяет подписи, цепочки и статус OCSP/CRL, потому что подключаться к другим серверам странице запрещено. Для проверки цепочки используйте openssl verify -CAfile chain.pem cert.pem.
Можно вставить закрытый ключ рядом с сертификатом?
Да, и это самый быстрый способ проверить, что они друг другу подходят: совпадающие значения SPKI-пин SHA-256 означают одну и ту же пару ключей. Для закрытого ключа инструмент показывает только тип и размер, а секретные значения в дереве ASN.1 скрыты.