bg-tutorials

Как сгенерировать CSR для SSL-сертификата

Вы можете сгенерировать CSR тремя способами: через командную строку с помощью OpenSSL, в панели управления сервером или консоли администратора (cPanelIIS, Plesk), либо с помощью бесплатного онлайн-генератора CSR, если у вас нет доступа к серверу. Каким бы путем вы ни пошли, вы заполняете одни и те же данные о вашем домене и организации и в итоге получаете два файла: CSR, который вы отправляете вместе с заказом сертификата, и приватный ключ, который необходимо сохранить в безопасности (некоторые панели управления сохраняют этот ключ за вас).

Если вы новичок в этом деле, CSR (сокращение от запрос на подпись сертификата) — это файл, который запрашивает у центра сертификации выпуск вашего SSL-сертификата. Вот как создать его на любой платформе.


Как сгенерировать CSR за 6 шагов

  1. Определите, где вы будете его генерировать: на сервере, который будет обслуживать сертификат (командная строка или панель управления), или с помощью бесплатного генератора CSR.
  2. Откройте SSL-инструмент вашего сервера или выполните команду OpenSSL, чтобы начать создание нового CSR и приватного ключа.
  3. Введите ваш домен как Common Name (точный адрес, который вы хотите защитить, например www.example.com).
  4. Добавьте данные вашей организации: организация, подразделение, город, регион, страна и email.
  5. Сгенерируйте их, затем сохраните CSR и приватный ключ в безопасном месте. Некоторые панели управления сохраняют ключ за вас.
  6. Скопируйте CSR и отправьте его в центр сертификации при заказе сертификата.

Эти шесть шагов работают на любой платформе. Для точных действий и команд на вашей платформе выберите её ниже. Если её нет в списке, универсальные методы ниже подходят практически везде.


Руководства по генерации CSR для разных платформ

A star icon
Самые популярные платформы
A Linux logo icon
Платформы Linux

Что нужно перед началом

  • Доступ к серверу или панели управления, которая будет обслуживать сертификат, или используйте наш CSR Generator, если у вас его нет.
  • Данные вашей организации в точном соответствии с юридической регистрацией. Центры сертификации проверяют их для сертификатов OV и EV.
  • Решение о типе ключа: RSA 2048 бит — минимальный стандарт. ECC (например, P-256) — более быстрый современный вариант, если ваш сервер его поддерживает.
  • Один CSR на один сертификат. Создавайте новый CSR каждый раз при заказе или продлении с новым ключом.

Каждый CSR запрашивает одни и те же поля. Вот что вводить в каждое из них:

ПолеЧто вводитьПример
Common Name (CN)Точный домен для защиты (FQDN)www.example.com
Organization (O)Юридическое название вашей компанииExample LLC
Organizational Unit (OU)Отдел (необязательно)IT
Locality (L)ГородAustin
State (ST)Полное название региона или штата, без сокращенийTexas
Country (C)Двухбуквенный код страны по ISOUS
EmailКонтактный email (необязательно)[email protected]

Готовый файл представляет собой стандартный запрос PKCS #10. Он содержит ваш открытый ключ вместе с этими данными и подписан вашим приватным ключом, чтобы центр сертификации мог убедиться, что эти два элемента связаны друг с другом.

Совет: для сертификата с wildcard установите Common Name как *.example.com. Для нескольких доменов в одном сертификате оставьте ваш основной домен в качестве Common Name, а остальные добавьте как Subject Alternative Names (SAN), а не как дополнительные Common Name.


Метод 1: Генерация CSR с помощью OpenSSL (Apache, Nginx, Linux)

OpenSSL — универсальный способ сгенерировать CSR на Apache, Nginx и большинстве серверов Linux. Подключитесь к серверу по SSH и выполните:

openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr

Вот что делает каждая часть команды:

  • req -new создаёт новый CSR.
  • -newkey rsa:2048 одновременно генерирует новый приватный ключ RSA длиной 2048 бит.
  • -nodes оставляет приватный ключ без пароля, чтобы сервер мог загрузить его без запроса при перезапуске.
  • -keyout example.key сохраняет приватный ключ.
  • -out example.csr сохраняет CSR.

Затем OpenSSL запрашивает поля из таблицы выше. Введите ваш Common Name, данные организации и местоположения. Поле challenge password можно оставить пустым.

Чтобы пропустить запросы и добавить SAN одной строкой, передайте subject и extensions напрямую:

openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr 
  -subj "/C=US/ST=Texas/L=Austin/O=Example LLC/OU=IT/CN=www.example.com" 
  -addext "subjectAltName=DNS:example.com,DNS:www.example.com"

Обратите внимание: флаг -addext требует OpenSSL версии 1.1.1 или новее. На некоторых старых серверах CentOS 7 и RHEL 7 до сих пор используется OpenSSL 1.0.2, где этого флага не существует. На таких системах добавляйте SAN через файл конфигурации. Выполните openssl version, если не уверены в версии.

Откройте готовый файл example.csr и скопируйте всё содержимое от ——BEGIN CERTIFICATE REQUEST—— до ——END CERTIFICATE REQUEST——. Держите example.key в секрете. Он понадобится вам позже для установки сертификата, и его невозможно восстановить в случае потери.

Предпочитаете ECC? Сначала сгенерируйте ключ, затем создайте CSR на его основе:

openssl ecparam -genkey -name prime256v1 -out example.key
openssl req -new -key example.key -out example.csr

Хотите узнать точные шаги для вашего дистрибутива? Смотрите наши руководства для Apache, Nginx, Ubuntu, Debian и Red Hat Linux.


Метод 2: Генерация CSR в cPanel

Если ваш хостинг использует cPanel, командная строка вам не понадобится.

  1. Войдите в cPanel и откройте раздел SSL/TLS в разделе безопасности.
  2. Нажмите Certificate Signing Requests (CSR).
  3. В разделе Generate a New Certificate Signing Request (CSR) заполните поля из таблицы выше. Используйте полное имя вашего домена как значение Domains или Common Name.
  4. Нажмите Generate.

cPanel отображает закодированный CSR на следующем экране. Скопируйте его для заказа. cPanel сохраняет соответствующий приватный ключ за вас в разделе Private Keys, так что сохранять его вручную не нужно, но запомните, где он находится, для последующей установки.

Если вы не можете найти CSR позже, он остаётся в списке на том же экране Certificate Signing Requests, так что вы можете скопировать его снова без повторной генерации.

Используете WHM вместо cPanel? Процесс почти идентичен — в разделе SSL/TLS → Generate an SSL Certificate and Signing Request. Подробные руководства: cPanel и WHM.


Метод 3: Генерация CSR в Windows (IIS)

На серверах Windows с IIS:

  1. Откройте IIS Manager и выберите имя вашего сервера в левой панели.
  2. Дважды щёлкните на Server Certificates.
  3. На панели действий нажмите Create Certificate Request.
  4. Заполните поля Distinguished Name: Common Name, Organization, Organizational Unit, City, State и Country.
  5. Выберите криптографического провайдера и установите длину ключа 2048 бит или выше, затем сохраните CSR в файл.

Оставьте провайдера как Microsoft RSA SChannel Cryptographic Provider, если у вас нет особых причин его менять. Другой выбор может усложнить последующую привязку выпущенного сертификата к вашему сайту.

IIS хранит ожидающий приватный ключ в хранилище сертификатов сервера, поэтому завершите запрос через Complete Certificate Request после выпуска сертификата. Не переустанавливайте сервер и не удаляйте ожидающий запрос в этот период, иначе ключ будет потерян, и потребуется повторный выпуск. На компьютерах Windows без IIS вы можете сгенерировать CSR с помощью certreq или оснастки MMC Certificates.

Подробные инструкции: Microsoft IIS и Microsoft Windows.


Метод 4: Генерация CSR с помощью нашего бесплатного генератора CSR

Нет доступа к серверу или просто хотите сделать это за пару секунд? Используйте наш бесплатный инструмент.

Откройте CSR Generator, заполните Common Name, данные организации и местоположения, затем сгенерируйте. Инструмент сразу создаёт как CSR, так и приватный ключ и отправляет вам ключ на email в качестве резервной копии. Скопируйте CSR для вашего заказа и сохраните приватный ключ в надёжном месте.

Два важных замечания:

  • Инструмент генерирует приватный ключ за вас, что подходит для большинства сертификатов DV и OV. Если ваша политика безопасности требует, чтобы ключ никогда не покидал ваш сервер, используйте OpenSSL или панель управления.
  • Генератор не подходит для сертификатов подписи кода. Начиная с июня 2023 года ключи для подписи кода должны создаваться и храниться на защищённом аппаратном устройстве, поэтому генерируйте их на вашем токене или HSM.

Сгенерировать CSR сейчас


После генерации CSR: проверка и следующие шаги

Перед отправкой CSR стоит провести быструю проверку.

  1. Проверьте его. Вставьте CSR в наш CSR Decoder, чтобы убедиться, что Common Name и данные организации указаны верно. Опечатка здесь означает повторный выпуск позже.
  2. Отправьте его. Скопируйте полный CSR в ваш заказ сертификата. Центр сертификации проверяет его и выпускает ваш SSL-сертификат X.509.
  3. Установите сертификат. После его выпуска следуйте нашему руководству как установить SSL-сертификат, используя ранее сохранённый приватный ключ.

Большинство центров сертификации отправляют выпущенный сертификат по email в течение нескольких минут для сертификата DV, обычно в виде файла .crt или .cer вместе с промежуточным набором сертификатов. Храните его вместе с приватным ключом, который вы сгенерировали.

Держите этот приватный ключ в резервной копии и в секрете на протяжении всего срока действия сертификата. Без него сертификат нельзя установить.


Распространённые ошибки CSR и как их исправить

  • Неверный Common Name. Сертификат защищает именно то, что вы вводите. example.com и www.example.com — разные адреса. Добавьте оба (один как CN, другой как SAN), если вам нужны оба.
  • Отсутствие SAN. Современные браузеры ориентируются на Subject Alternative Names, а не только на Common Name. Перечислите все домены, которые должен покрывать сертификат.
  • CSR и приватный ключ не совпадают. CSR работает только с ключом, сгенерированным вместе с ним. Если вы потеряли ключ или создали новый CSR, потребуется повторный выпуск. Никогда не удаляйте ключ до установки сертификата.
  • Неверный код страны. Поле страны требует двухбуквенный код ISO (US, GB, DE), а не полное название страны. Ввод «United States» — одна из самых распространённых причин отклонения CSR.
  • Сокращения или специальные символы в полях организации. Пишите название региона полностью и избегайте символов вроде @, & или диакритических знаков в полях организации, так как некоторые CA отклоняют их.
  • Использование CSR Generator для подписи кода. CSR для подписи кода должны создаваться на защищённом аппаратном устройстве. Наш CSR Generator предназначен только для сертификатов TLS/SSL.

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

Как сгенерировать CSR для wildcard-сертификата?

Создайте его точно так же, как любой другой CSR, но установите Common Name как *.example.com. Один wildcard-сертификат покрывает все поддомены первого уровня, такие как mail.example.com и shop.example.com. Добавьте базовый домен как SAN, если также нужен example.com без поддомена.

Как сгенерировать CSR из существующего сертификата?

Вы не можете извлечь CSR обратно из выпущенного сертификата, но можете создать новый с теми же данными. Прочитайте строку subject из текущего сертификата:
openssl x509 -in your.crt -noout -subject
Если сертификат уже активен на вашем сайте, наш SSL Checker покажет те же данные. Затем сгенерируйте новый CSR и приватный ключ, используя эти значения.

Как сгенерировать многодоменный (SAN) CSR?

Оставьте ваш основной домен как Common Name, а остальные добавьте как Subject Alternative Names. В OpenSSL добавьте -addext «subjectAltName=DNS:example.com,DNS:www.example.com,DNS:mail.example.com» (OpenSSL 1.1.1 или новее). В панели управления введите дополнительные домены в поле SAN, затем заказывайте многодоменный сертификат (UCC/SAN).

Как долго действует CSR и как часто его нужно пересоздавать?

CSR не имеет срока действия, но он связан с одним приватным ключом и предназначен для одного заказа. Создавайте новый CSR каждый раз при заказе или продлении сертификата с новым ключом. Повторное использование старого CSR безопасно только в том случае, если вы сохраняете тот же приватный ключ.

Можно ли сгенерировать CSR из браузера?

Браузеры удалили встроенную функцию генерации ключей, поэтому напрямую создать CSR в них больше нельзя. Используйте наш онлайн CSR Generator, который выполнит генерацию за вас, либо используйте командную строку.

Как выглядит CSR?

CSR — это короткий блок текста в кодировке Base64, обычно около одного килобайта, сохранённый с расширением .csr. Он всегда начинается и заканчивается одинаковыми строками-маркерами:
-----BEGIN CERTIFICATE REQUEST----- MIICvDCCAaQCAQAwdzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYD VQQHDAZBdXN0aW4xFDASBgNVBAoMC0V4YW1wbGUgTExDMRcwFQYDVQQDDA53d3cu ZXhhbXBsZS5jb20... -----END CERTIFICATE REQUEST-----
Этот зашифрованный текст кодирует ваш открытый ключ и введённые вами данные. Отправьте всё содержимое от BEGIN до END, включая строки-маркеры, в центр сертификации. В отличие от приватного ключа, CSR можно безопасно передавать: он не содержит секретных данных.

Сэкономьте 10% на SSL-сертификатах при заказе сегодня!

Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10

Детальное изображение дракона в полете
Написано

Опытный автор контента, специализирующийся на SSL-сертификатах. Превращает сложные темы кибербезопасности в понятный, увлекательный контент. Вносите свой вклад в повышение уровня цифровой безопасности с помощью впечатляющих рассказов.