Генератор CSR
Чтобы получить TLS-сертификат, нужно передать удостоверяющему центру запрос на подпись сертификата: ваш домен, открытый ключ и подтверждение того, что вы владеете соответствующим закрытым ключом. Этот генератор создаёт CSR в формате PEM и закрытый ключ RSA прямо в браузере, с теми полями и размером ключа, которые вы укажете. Закрытый ключ никогда не покидает страницу, но скачайте его до закрытия вкладки, потому что ничего не хранится на сервере.
Как создать CSR
-
1
Введите общее имя (CN)
Основное имя хоста, которое будет защищать сертификат, например `www.example.com`. Допускаются подстановочные знаки, например `*.example.com`.
-
2
Заполните поля организации (необязательно)
O (организация), OU, L (город), ST (регион), C (код страны) и при желании адрес электронной почты. Сертификаты с проверкой домена игнорируют большую часть этих полей; сертификаты OV и EV требуют их.
-
3
Выберите размер ключа
RSA 2048 (по умолчанию, универсальная совместимость) или более стойкие размеры RSA 3072 и RSA 4096.
-
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-адресов, поэтому нужно использовать имя хоста.
После создания
- Храните закрытый ключ в безопасности. Права 0600, владелец пользователь веб-сервера.
- Вставьте CSR в веб-форму или CLI-инструмент вашего УЦ (Let’s Encrypt через ACME обычно делает это автоматически).
- Получите подписанный сертификат (и промежуточную цепочку).
- Установите на сервер и цепочку сертификатов, и закрытый ключ.
- Проверьте с помощью 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.