Парсер SSL-сертификатов
Вставьте PEM-сертификат и прочитайте его как таблицу: издатель, субъект, покрываемые имена, окно действия, отпечаток — всё разбирается прямо в вашем браузере. Необязательный запрос к crt.sh показывает историю Certificate Transparency того же домена. Чтобы узнать, что сервер предъявляет прямо сейчас, воспользуйтесь вместо этого проверкой SSL.
Разобрать сертификат
Самоподписанный: субъект и издатель совпадают, поэтому за этим сертификатом не стоит никакой публичный орган.
- Субъект
- Издатель
- Серийный номер
- Алгоритм подписи
- Открытый ключ
- Действителен с
- Действителен до
- Осталось дней
- Покрываемые имена (SAN)
- Отпечаток SHA-256
История Certificate Transparency (необязательно)
Ищите на crt.sh каждый публично зарегистрированный сертификат, когда-либо выпущенный для домена. Это история, а не живая проверка: она показывает, что было выпущено, включая сертификаты, которых вы можете не узнать. Если crt.sh недоступен из этого браузера, этот раздел честно об этом сообщает, а парсер выше не затрагивается.
| Общее имя | Издатель | Не раньше | Не позже | Имена |
|---|
Как читать сертификат
Сертификат связывает три вещи: открытый ключ, список имён и окно действия — всё это подписано издателем. Субъект говорит, кому сертификат был выпущен; издатель говорит, какой орган его подписал, — именно там живут продления, когда вы наследуете инфраструктуру. Серийный номер — это уникальный идентификатор издателя для этого сертификата, полезный, когда орган отзывает один сертификат, не трогая его собратьев. Алгоритм подписи говорит, как была сделана подпись издателя; всё, что до сих пор работает на MD5 или SHA-1, давно прошло дату своего вывода из эксплуатации и должно быть заменено независимо от даты окончания.
Окно действия — это часть со сроком, и эта страница превращает его в счётчик оставшихся дней с той же расцветкой, что и у живой проверки: спокойно за пределами девяноста дней, янтарно внутри девяноста, красно внутри тридцати и откровенно просрочено за нулём. Список покрываемых имён — это то, что браузеры проверяют на самом деле: общее имя — унаследованное украшение, а отсутствующее имя в этом списке — самая частая причина предупреждения браузера на в остальном здоровом сайте. Отпечаток SHA-256 — компактный идентификатор точных байтов сертификата: два сертификата с одинаковым отпечатком — это один и тот же сертификат, что делает его надёжным способом сравнить то, что у вас есть, с тем, что утверждает журнал, поставщик или коллега.
Парсер против живой проверки против журнала прозрачности
Три разных вопроса, три разных инструмента, и их смешение вызывает настоящую путаницу. «Что содержит этот файл?» — это парсер на этой странице: офлайн, точно, ограничено файлом, который у вас есть. «Что сервер предъявляет прямо сейчас?» — это проверка SSL, которая выполняет настоящий TLS-рукопожатие и потому может не соглашаться с файлом: обновлённый сертификат на диске ничего не значит, пока сервер не перезагружен. «Что когда-либо выпускалось для этого домена?» — это поиск crt.sh, который читает публичные журналы Certificate Transparency и может вытащить на свет забытые или несанкционированные выпуски, которых ни один из двух других не показал бы. Используйте парсер, чтобы прочитать файл, проверку — чтобы проверить развёртывание, а поиск по журналам — чтобы аудитировать историю, и когда проверка и файл расходятся, верьте проверке. Четвёртый вопрос принадлежит другому инструменту: подходят ли несколько файлов друг к другу — какой закрытый ключ соответствует этому сертификату и в каком порядке следует предъявлять цепочку — это сопоставитель сертификатов и ключей, который группирует сертификаты, ключи и CSR по их общему открытому ключу.
Разбор сертификатов использует node-forge по лицензии BSD-3-Clause. Онлайн-запросы отправляют введённый вами домен на crt.sh; сам PEM-парсер не делает никаких сетевых запросов.
Частые вопросы
Чем это отличается от проверки SSL?
Проверка SSL выполняет живое TLS-рукопожатие с сервером и сообщает сертификат, который сервер действительно предъявляет прямо сейчас. Эта страница разбирает текст сертификата, который вы вставляете, — полезно, когда у вас есть файл сертификата, рабочий процесс CSR или сертификат из системы, до которой отсюда не добраться. Если вы можете добраться до сайта, используйте проверку SSL; если у вас только файл, используйте эту страницу.
Что добавляет crt.sh?
crt.sh ищет в публичных журналах Certificate Transparency: каждый публично доверенный сертификат, когда-либо выпущенный для домена, с издателем и датами действия. Он отвечает на вопрос «что было выпущено» — включая сертификаты, которых вы не ожидали. Он не может сказать, что сервер предъявляет сегодня; это может только живое рукопожатие.
Почему запрос к crt.sh может не удаться?
crt.sh — бесплатный сторонний сервис, и сможет ли браузер прочитать его ответы, зависит от его заголовков cross-origin. Если здесь он не сработает, страница честно об этом скажет, а PEM-парсер выше продолжит работать — онлайн-запрос является дополнением, а не самим инструментом.
Что SAN говорят мне такого, чего не говорит общее имя?
Современные браузеры игнорируют общее имя и вместо этого проверяют список альтернативных имён субъекта. Сертификат действителен ровно для имён из этого списка: голый домен без www или забытый поддомен — самая частая причина предупреждения браузера на в остальном здоровом сайте.
Утекает ли что-нибудь при вставке сертификата?
Сертификат по замыслу является публичным документом — он не содержит закрытого ключа и ничего секретного. Закрытый ключ — это отдельный файл, и его никогда нельзя вставлять куда бы то ни было. Разбор здесь в любом случае происходит полностью в вашем браузере.