Что такое CSR?
Certificate Signing Request (CSR) — это небольшой документ в формате PKCS#10, который удостоверяющему центру (CA) необходим для выпуска TLS-сертификата или сертификата подписи кода. В нём содержится открытая часть ключевой пары, идентификационные данные, которые вы хотите подтвердить через CA (Subject), а также дополнительные идентификаторы — DNS-имена или IP-адреса (Subject Alternative Names, или SAN). Весь пакет подписывается соответствующим закрытым ключом.
Этот инструмент создаёт CSR полностью в вашем браузере с использованием Web Crypto API и @peculiar/x509. Ни ваш ключ, ни сам запрос не отправляются на сервер.
Когда использовать этот инструмент
- Запрос TLS-сертификата у публичного CA (Let’s Encrypt, DigiCert, ZeroSSL, Sectigo и др.), если их процесс требует вставки собственного CSR.
- Создание CSR для внутреннего удостоверяющего центра — на базе ACME, smallstep, EJBCA, AD CS — без использования ненадёжных размещённых форм.
- Перевыпуск сертификата с тем же закрытым ключом: импортируйте существующий ключ PKCS#8 PEM и подпишите новый CSR.
Как заполнить форму
- Источник ключа — выберите Создать новый для создания новой ключевой пары или Импортировать существующий, чтобы вставить незашифрованный закрытый ключ PKCS#8 PEM. Зашифрованные ключи, устаревшие блоки
RSA PRIVATE KEYиEC PRIVATE KEYне принимаются; сначала преобразуйте их с помощьюopenssl pkcs8 -topk8 -nocrypt. - Алгоритм — RSA обладает наибольшей совместимостью по умолчанию. ECDSA создаёт более компактные подписи и широко поддерживается современными CA и TLS-клиентами.
- Subject — большинство публичных CA игнорируют всё, кроме Common Name, и считают список DNS в SAN авторитетным; однако частным CA может потребоваться полное DN.
- Записи SAN — перечислите имена хостов, IP-адреса, адреса электронной почты или URI, которые должен охватывать сертификат. По одному на строку или через запятую.
Что важно учитывать
- Закрытый ключ, отображаемый рядом с CSR, генерируется локально и никогда не покидает ваш браузер. Сохраните его до закрытия вкладки — без соответствующего закрытого ключа подписанный сертификат бесполезен.
- Публичные CA требуют, чтобы Common Name (или хотя бы одна запись SAN) была DNS-именем, которое они могут проверить. SAN с IP-адресами в основном используются для внутренних сертификатов.
- Сгенерированный закрытый ключ не зашифрован. Если необходимо, добавьте кодовую фразу командой
openssl pkcs8 -in key.pem -topk8 -out key-enc.pemперед сохранением. - Поддерживаются только RSA (2048/3072/4096) и ECDSA (P-256/P-384/P-521). EdDSA намеренно исключён, поскольку поддержка в различных браузерах и CA пока нестабильна.