Генератор CSR

Генерировать CSR
Далее

Чтобы получить TLS-сертификат, нужно передать удостоверяющему центру запрос на подпись сертификата: ваш домен, открытый ключ и подтверждение того, что вы владеете соответствующим закрытым ключом. Этот генератор создаёт CSR в формате PEM и закрытый ключ RSA прямо в браузере, с теми полями и размером ключа, которые вы укажете. Закрытый ключ никогда не покидает страницу, но скачайте его до закрытия вкладки, потому что ничего не хранится на сервере.

Как создать CSR

  1. 1

    Введите общее имя (CN)

    Основное имя хоста, которое будет защищать сертификат, например `www.example.com`. Допускаются подстановочные знаки, например `*.example.com`.

  2. 2

    Заполните поля организации (необязательно)

    O (организация), OU, L (город), ST (регион), C (код страны) и при желании адрес электронной почты. Сертификаты с проверкой домена игнорируют большую часть этих полей; сертификаты OV и EV требуют их.

  3. 3

    Выберите размер ключа

    RSA 2048 (по умолчанию, универсальная совместимость) или более стойкие размеры RSA 3072 и RSA 4096.

  4. 4

    Скачайте оба файла

    Файл `.csr` отправляется вашему УЦ; файл `.key` остаётся на вашем сервере. Храните ключ надёжно: потеря означает начало заново.

Что создаётся

Два файла PEM:

example.csr (открытый, отправляется УЦ):

-----BEGIN CERTIFICATE REQUEST-----
MIIC...
-----END CERTIFICATE REQUEST-----

example.key (закрытый, остаётся на вашем сервере):

-----BEGIN PRIVATE KEY-----
MIIE...
-----END PRIVATE KEY-----

CSR подписывается закрытым ключом как доказательство владения. Когда УЦ выпускает сертификат, открытый ключ сертификата совпадёт с ключом из CSR, который совпадёт с закрытым ключом на вашем сервере.

Этот генератор создаёт CSR только с введённым общим именем и без расширений альтернативных имён субъекта (SAN). Если сертификат должен покрывать несколько имён хоста, используйте инструменты своего УЦ: ACME-клиенты, такие как Let’s Encrypt, создают запрос за вас, а большинство веб-форм УЦ добавляет дополнительные имена при отправке.

Требования к полям по типу сертификата

Поле Нужно для DV? Нужно для OV/EV?
Общее имя (CN) Да Да
Организация (O) Нет Да, проверяется
Организационная единица Необязательно Необязательно
Местоположение (город) Необязательно Да, проверяется
Регион / область Необязательно Да, проверяется
Страна (2 буквы) Рекомендуется Да, проверяется
Адрес электронной почты Необязательно Необязательно

Let’s Encrypt и большинство автоматизированных DV-издателей смотрят только на общее имя. Корпоративные УЦ, выпускающие сертификаты OV/EV, сверяют данные организации с деловыми реестрами.

Размеры ключей

Размер ключа Преимущества Недостатки
RSA 2048 Универсальная совместимость, быстро Меньший запас прочности
RSA 3072 Стойче, всё ещё универсален Медленнее генерация и handshake
RSA 4096 Самый стойкий, всё ещё универсален Самый медленный и самый большой

Для публичного веб-сервера RSA 2048 является безопасным выбором по умолчанию. Выбирайте 3072 или 4096 бит, если нужен больший запас прочности и вы готовы к более медленной генерации ключа, медленным handshake и большим сертификатам.

Где CSRs ошибаются

  • Сертификат не покрывает имя хоста: браузеры показывают “NET::ERR_CERT_COMMON_NAME_INVALID”, когда сертификат не покрывает точное имя, которое вы посетили. Общее имя должно совпадать с полным именем хоста, включая www, если вы его используете. Поскольку этот генератор создаёт запрос с одним CN, для дополнительных имён используйте инструменты своего УЦ.
  • Ограничение подстановочных знаков: wildcard *.example.com соответствует только одному уровню поддомена. Он не соответствует api.v2.example.com.
  • Аpex-домен и wildcard это разные имена: *.example.com не покрывает голый example.com; в сертификате нужны оба как отдельные имена.
  • IP-адрес: большинство публичных УЦ больше не выпускает сертификаты для IP-адресов, поэтому нужно использовать имя хоста.

После создания

  1. Храните закрытый ключ в безопасности. Права 0600, владелец пользователь веб-сервера.
  2. Вставьте CSR в веб-форму или CLI-инструмент вашего УЦ (Let’s Encrypt через ACME обычно делает это автоматически).
  3. Получите подписанный сертификат (и промежуточную цепочку).
  4. Установите на сервер и цепочку сертификатов, и закрытый ключ.
  5. Проверьте с помощью SSL-чеккера.

Часто задаваемые вопросы

Нет. Генерация ключа полностью происходит в вашем браузере. Страница не хранит ключи на сервере. Скачайте файл ключа сразу; как только вы закроете вкладку, он исчезнет.

Для большинства публичных сайтов RSA 2048 это безопасный универсальный стандарт, и он генерируется быстро. Выбирайте 3072 или 4096 бит, если нужен больший запас прочности и вы готовы к более медленной генерации ключа и handshake.

Да. Используйте *.example.com в качестве общего имени. Помните, что wildcard соответствует только одному уровню поддомена и что большинство DV-издателей требует DNS-проверку (не HTTP) для wildcard-сертификатов.

CSR это запрос: он говорит “подпишите этот открытый ключ для этих имён хостов”. Сертификат это то, что УЦ возвращает после подписи. CSR недолговечен и не устанавливается на сервер; именно сертификат реально обслуживает TLS.

Сопутствующие инструменты

Кодировщик и декодировщик Base58

Кодируйте текст UTF-8 или шестнадцатеричные байты и безопасно декодируйте Base58 с алфавитом Bitcoin, Ripple или Flickr.

Кодировщик файлов Base64

Кодируйте любой файл (PDF, ZIP, изображение, исполняемый файл) в текст Base64 для встраивания в JSON, письма, YAML или data URI. Работает локально в браузере, без загрузки на сервер.

Кодировщик шифра A1Z26

Кодируйте текст шифром A1Z26 (A=1, B=2, ... Z=26) или декодируйте числовую последовательность обратно в буквы, выбрав разделитель.

Кодировщик и декодировщик Base85

Кодируйте и декодируйте Base85 в варианте Adobe Ascii85, который используется в файлах PostScript и PDF. Компактнее Base64 для двоичных данных.

Шифрование / расшифровка AES

Шифруйте и расшифровывайте текст низкого риска с AES-шифрами OpenSSL. Парольная фраза хэшируется SHA-256, а Base64-вывод содержит IV плюс шифротекст.

Генератор bcrypt

Сгенерируйте bcrypt hash из plaintext password. Настраиваемый cost factor от 4 до 13, совместим с Laravel, Django, Node и PHP.