Декодер CSR
Прежде чем удостоверяющий центр подпишет TLS-сертификат, вы передаёте ему запрос на подпись сертификата (CSR), блок в формате Base64, содержащий субъект, который вы хотите указать в сертификате, и ваш открытый ключ, а также подпись, подтверждающую, что вы владеете соответствующим закрытым ключом. Этот декодер принимает CSR в формате PEM и показывает поля субъекта и параметры открытого ключа, чтобы вы могли проверить общее имя, организацию и размер ключа перед отправкой запроса в удостоверяющий центр.
Как декодировать CSR
-
1
Вставьте CSR
Включите маркеры `-----BEGIN CERTIFICATE REQUEST-----` и `-----END CERTIFICATE REQUEST-----`. Пробельные символы допускаются.
-
2
Запустите декодер
Запрос разбирается, и считываются поля субъекта и открытый ключ.
-
3
Проверьте вывод
Проверьте поля субъекта, такие как общее имя и организация, а также алгоритм и размер ключа.
-
4
Действуйте по результату
Если субъект или ключ выглядят неверно, перегенерируйте CSR перед отправкой в удостоверяющий центр.
Что показывает декодер
CSR представляет собой структуру ASN.1 (PKCS #10). Декодер читает из неё две вещи:
- Субъект: запрошенные поля различительного имени, как правило страна (C), организация (O), организационная единица (OU), населённый пункт (L), регион (ST) и общее имя (CN).
- Открытый ключ: алгоритм (RSA, EC, DSA) и размер ключа в битах.
Подпись внутри CSR и есть то, что доказывает удостоверяющему центру, что отправитель владеет соответствующим закрытым ключом. Этот декодер её не отображает; удостоверяющий центр проверяет её при обработке запроса.
Пример вывода
Для типичного запроса на доменный сертификат вывод выглядит так:
Subject: commonName=www.example.com, organizationName=Example Inc., countryName=US
Key bits: 2048
Key type: RSA
Точные имена атрибутов в субъекте зависят от того, как был создан запрос.
Поля, которые стоит перепроверить
- Общее имя (CN): должно быть основным именем хоста. Современные браузеры игнорируют CN и смотрят только на SAN, но многие удостоверяющие центры по-прежнему требуют действительный CN.
- Альтернативные имена субъекта (SAN): перечислите каждое имя хоста и подстановочный знак, которые будет защищать сертификат. Браузеры сопоставляют по SAN, а не по CN.
- Страна (C): двухбуквенный ISO-код (US, GB, DE), а не полное название. Удостоверяющие центры отклоняют неверные коды.
- Размер ключа: RSA 2048, это минимум; 3072 или 4096 для более высокой безопасности. ECDSA P-256, хорошая современная альтернатива, дающая сертификат меньшего размера.
- Алгоритм подписи: SHA-256 или лучше. SHA-1 давно устарел и будет отклонён.
Об альтернативных именах субъекта (SAN)
Декодер показывает субъект запроса, но не расширение SAN. Браузеры сопоставляют сертификаты по SAN, а не по CN; если сертификат должен покрывать дополнительные имена хостов, включите их при создании запроса, например:
openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr -addext "subjectAltName=DNS:example.com,DNS:www.example.com"
Когда декодер не может разобрать CSR
Самые частые причины: обрезанный или повреждённый PEM-блок:
- Обрезанный текст: вставьте полный блок заново, включая оба маркера.
- Вставленные переносы строк: вставьте блок точно в том виде, в каком он был создан.
- Неверное содержимое: открытый ключ, сертификат или закрытый ключ, вставленные по ошибке, не разберутся как CSR.
Генерация соответствующего ключа
CSR всегда генерируется вместе с закрытым ключом. Типичная команда:
openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr
Или для алгоритма ECDSA:
openssl req -new -newkey ec:<(openssl ecparam -name prime256v1) -nodes -keyout example.key -out example.csr
Берегите закрытый ключ: в случае его утечки сертификат необходимо отозвать.
Часто задаваемые вопросы
CSR содержит только публичную информацию (открытый ключ, субъект, SAN) и подпись, им безопасно делиться с удостоверяющим центром или вставлять в декодер. В секрете должен оставаться соответствующий закрытый ключ.
Нет. Этот декодер ожидает текстовую форму PEM с маркерами BEGIN/END CERTIFICATE REQUEST. Чтобы использовать двоичный запрос DER, сначала преобразуйте его в PEM, например командой openssl req -in request.der -inform DER -out request.pem.
Нет. Большинство публичных удостоверяющих центров (Let’s Encrypt, DigiCert, Sectigo) требуют только CN и SAN; они игнорируют O, OU, L, ST и C для сертификатов с проверкой домена. Сертификаты с проверкой организации и с расширенной проверкой подтверждают эти поля отдельно.
Чаще всего потому, что вставленный текст был обрезан или в него попали переносы строк, либо вместо CSR был вставлен ключ или сертификат. Вставьте полный блок между двумя маркерами заново.
Сопутствующие инструменты
Справочная таблица ASCII
Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.
Справочник сочетаний клавиш
Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.
Справочник символов HTML
Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.
Счетчик FPS
Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.
Генератор цветовой палитры
Создавайте монохромные, аналоговые, комплементарные, триадные или тетрадные палитры из базового HEX-цвета и экспортируйте готовые CSS-переменные.
Генератор случайных букв
Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.