Skip to content
EN

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

Коротко:

CSR (Certificate Signing Request) — файл с публичным ключом и данными организации, который вы отправляете CA для получения SSL-сертификата. Генерируется командой openssl, требует: приватный ключ, Common Name (CN = domain), SAN для multi-domain. Let's Encrypt не требует CSR — он использует ACME protocol.

Ниже: пошаговая инструкция, рабочие примеры, типичные ошибки, FAQ.

Проверить SSL своего сайта →

Пошаговая настройка

  1. Убедитесь что установлен openssl: openssl version
  2. Сгенерируйте приватный ключ: openssl genrsa -out privkey.pem 2048
  3. Сгенерируйте CSR: openssl req -new -key privkey.pem -out request.csr
  4. Заполните поля: Country (RU), State, City, Organization (ООО ...), Common Name (example.com), email
  5. Для multi-domain: используйте SAN config (см. пример ниже)
  6. Отправьте request.csr в CA (DigiCert, Sectigo, GeoTrust)
  7. После получения cert: установите в nginx/Apache с исходным privkey.pem + intermediate bundle
  8. Проверьте через SSL-чекер Enterno.io

Рабочие примеры

СценарийКонфиг / запись
Минимальный CSR (одна строка)openssl req -new -newkey rsa:2048 -nodes -keyout privkey.pem -out request.csr -subj "/C=RU/ST=Moscow/O=ООО/CN=example.com"
CSR с Subject Alternative Names (SAN)openssl req -new -key privkey.pem -out request.csr -config san.cnf (см. файл san.cnf ниже)
san.cnf для multi-domain[req] distinguished_name = req_dn req_extensions = v3_req [req_dn] CN = example.com [v3_req] subjectAltName = DNS:example.com,DNS:www.example.com,DNS:api.example.com
Проверка CSRopenssl req -text -noout -in request.csr
Wildcard certCN = *.example.com + SAN = *.example.com, example.com

Типичные ошибки

  • Common Name опечатка (www.example.com вместо example.com) — CA откажет
  • RSA ключ меньше 2048 бит — большинство CA откажут (Let's Encrypt: 2048 минимум)
  • Пароль на приватный ключ (-aes256) — nginx требует ввод при рестарте. Используйте -nodes
  • Пропустили SAN для multi-domain → cert только на один домен
  • ECDSA вместо RSA — поддерживается, но не все CA / не все клиенты. Безопаснее RSA для compatibility

Как сгенерировать CSR: краткое руководство

Чтобы сгенерировать CSR (Certificate Signing Request), используйте команду openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr. Это создаст приватный ключ и запрос на сертификат с длиной ключа 2048 бит. Убедитесь, что вы указали правильные данные о владельце сертификата, такие как страна, штат и организация, чтобы избежать проблем при его получении.

Шаги по генерации CSR

1. Установка OpenSSL

Для генерации CSR вам потребуется установленный OpenSSL. Если у вас его нет, установите его с помощью пакетного менеджера вашей операционной системы. Например:

  • sudo apt-get install openssl для Ubuntu
  • brew install openssl для macOS

После установки проверьте, что OpenSSL работает, выполнив команду openssl version.

2. Генерация приватного ключа и CSR

Выполните следующую команду в терминале:

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

Здесь yourdomain.key — это имя файла, в котором будет храниться ваш приватный ключ, а yourdomain.csr — имя файла запроса на сертификат. При выполнении команды вам будет предложено ввести информацию о вашей компании. Убедитесь, что данные введены корректно:

  1. Страна (Country Name)
  2. Штат или провинция (State or Province Name)
  3. Город (Locality Name)
  4. Название организации (Organization Name)
  5. Название отдела (Organizational Unit Name)
  6. Общее имя (Common Name) — доменное имя
  7. Адрес электронной почты (Email Address)

3. Проверка CSR

После генерации CSR вы можете проверить его содержимое с помощью следующей команды:

openssl req -text -noout -verify -in yourdomain.csr

Убедитесь, что информация соответствует вашим ожиданиям. Если все верно, вы можете отправить CSR вашему поставщику сертификатов для получения SSL-сертификата.

Советы и лучшие практики

При генерации CSR важно следовать некоторым рекомендациям:

  • Используйте безопасный ключ: Длина ключа должна быть не менее 2048 бит. Это обеспечит достаточный уровень безопасности для вашего SSL-сертификата.
  • Храните приватный ключ в безопасности: Никогда не передавайте его третьим лицам и храните в защищенном месте.
  • Обновление сертификата: Следите за сроком действия вашего SSL-сертификата и заранее генерируйте новый CSR для его обновления.

Пример использования CSR в процессе получения сертификата:

После генерации CSR и приватного ключа отправьте CSR вашему поставщику сертификатов (CA). Например, если вы используете Let's Encrypt, вы можете использовать автоматизированные инструменты, такие как Certbot, для упрощения процесса. Certbot может автоматически генерировать CSR и управлять сертификатами для вас.

В случае возникновения проблем с генерацией CSR, обратитесь к документации вашего CA или используйте форумы разработчиков для получения помощи. Убедитесь, что все шаги выполнены правильно, чтобы избежать задержек в процессе получения сертификата.

Как сгенерировать CSR: краткий ответ

Чтобы сгенерировать CSR (Certificate Signing Request), используйте утилиту OpenSSL. Команда для создания CSR выглядит следующим образом: openssl req -new -newkey rsa:2048 -nodes -keyout mydomain.key -out mydomain.csr. Эта команда создаст ключ RSA с длиной 2048 бит и сгенерирует CSR для домена mydomain. После выполнения команды вам будет предложено ввести информацию о вашем сертификате, такую как страна, область, город и организация.

Подробное руководство по генерации CSR

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

Шаг 1: Установка OpenSSL

Если у вас еще не установлена утилита OpenSSL, вы можете установить ее с помощью менеджера пакетов. Например, для Ubuntu выполните команду:

sudo apt-get install openssl

Для macOS используйте Homebrew:

brew install openssl

Шаг 2: Генерация приватного ключа и CSR

После установки OpenSSL вы можете начать процесс генерации. Откройте терминал и выполните следующую команду:

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

Эта команда выполняет несколько действий:

  • Создает новый приватный ключ mydomain.key.
  • Генерирует CSR mydomain.csr.
  • Использует алгоритм RSA с длиной ключа 2048 бит.
  • Не требует пароля для приватного ключа (опция -nodes).

Шаг 3: Заполнение информации о сертификате

После выполнения команды вам будет предложено ввести следующие данные:

  • Country Name (2 letter code): Код вашей страны (например, RU для России).
  • State or Province Name: Полное название вашего региона или области.
  • Locality Name: Город, в котором зарегистрирована ваша компания.
  • Organization Name: Название вашей компании.
  • Organizational Unit Name: Отдел или подразделение (по желанию).
  • Common Name: Полное доменное имя, для которого вы запрашиваете сертификат (например, www.mydomain.com).
  • Email Address: Ваш адрес электронной почты (по желанию).

Шаг 4: Проверка созданного CSR

После генерации CSR вы можете проверить его содержимое с помощью следующей команды:

openssl req -in mydomain.csr -noout -text

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

Шаг 5: Отправка CSR центру сертификации

Теперь, когда у вас есть CSR, вы можете отправить его в выбранный вами центр сертификации для получения SSL-сертификата. Обычно это делается через веб-интерфейс или по электронной почте. Следуйте инструкциям вашего центра сертификации для завершения процесса.

Дополнительные советы

При генерации CSR обратите внимание на следующие моменты:

  • Используйте ключи длиной не менее 2048 бит для обеспечения безопасности.
  • Храните ваш приватный ключ в безопасном месте и никогда не передавайте его третьим лицам.
  • Если вы планируете использовать сертификат на нескольких поддоменах, убедитесь, что вы указали правильное полное доменное имя в поле Common Name.

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

СертификатСрок, издатель, домены (SAN)
ЦепочкаПроверка промежуточных и корневых CA
TLS-протоколВерсия TLS и набор шифров
УязвимостиHeartbleed, POODLE, слабые шифры

Почему нам доверяют

TLS 1.3
поддержка
Полная
цепочка CA
<2с
результат
30/14/7
дней до истечения

Как это работает

1

Введите домен

2

Проверка цепочки TLS

3

Дата истечения и уязвимости

Что проверяет SSL-тест?

SSL/TLS — протокол шифрования, который защищает данные между браузером и сервером. Наш инструмент анализирует сертификат, цепочку доверия, версию TLS и известныеуязвимости.

Детали сертификата

Издатель, срок действия, алгоритм подписи, покрываемые домены (SAN) и тип валидации (DV/OV/EV).

Цепочка доверия

Проверка полной цепочки: от конечного сертификата через промежуточные до корневого CA.

Анализ TLS

Версия протокола (TLS 1.2/1.3), набор шифров, поддержка Perfect Forward Secrecy (PFS).

Оповещения об истечении

Создайте монитор — получайте уведомления в Telegram и email за 30/14/7 дней до истечения.

DV vs OV vs EV сертификаты

DV (Domain Validation)
  • Подтверждение только владения доменом
  • Выдаётся за минуты автоматически
  • Бесплатно через Let's Encrypt
  • Подходит для большинства сайтов
  • Самый распространённый тип
OV / EV
  • Проверка организации (OV) или расширенная проверка (EV)
  • Выдаётся за 1-5 рабочих дней
  • Стоимость от $50 до $500/год
  • Для финансов, e-commerce, госсайтов
  • Повышает доверие пользователей

Кому это нужно

DevOps

мониторинг SSL-сертификатов

Безопасность

аудит TLS-конфигурации

SEO

HTTPS как фактор ранжирования

E-commerce

доверие покупателей

Частые ошибки

Истёкший сертификатБраузеры блокируют сайт с истёкшим SSL. Настройте автопродление или мониторинг.
Неполная цепочка сертификатовБез промежуточного CA некоторые браузеры и боты не смогут верифицировать сертификат.
Mixed content на HTTPS-сайтеHTTP-ресурсы на HTTPS-странице — замок в браузере пропадает, снижается доверие.
Использование TLS 1.0/1.1Устаревшие версии TLS содержат известные уязвимости. Используйте TLS 1.2+ или 1.3.
Несовпадение домена в сертификатеСертификат должен покрывать все домены сайта, включая www и поддомены.

Лучшие практики

Настройте автопродлениеLet's Encrypt + certbot с cron — сертификат обновляется автоматически каждые 60-90 дней.
Включите HSTSЗаголовок Strict-Transport-Security заставляет браузер всегда использовать HTTPS.
Используйте TLS 1.3TLS 1.3 быстрее (1-RTT handshake) и безопаснее — убраны устаревшие шифры.
Мониторьте срок действияСоздайте монитор на Enterno.io — получайте уведомления задолго до истечения.
Проверяйте цепочку после обновленияПосле обновления сертификата убедитесь, что промежуточные сертификаты установлены.

Получите больше с бесплатным аккаунтом

Мониторинг SSL-сертификатов, история проверок и уведомления за 30 дней до истечения.

Зарегистрироваться (FREE)

Больше по теме

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

Нужно ли CSR для Let's Encrypt?

Нет. Let's Encrypt использует ACME protocol — certbot генерирует ключ и CSR автоматически. Достаточно запустить <code>certbot --nginx -d example.com</code>.

Что такое SAN?

Subject Alternative Names — расширение X.509, позволяет один cert для нескольких доменов. Современные браузеры игнорируют CN в пользу SAN. Всегда включайте домен в SAN.

Разница DV/OV/EV?

DV (Domain Validation) — только проверка владения доменом (Let's Encrypt). OV (Organization Validation) — + верификация юрлица. EV (Extended Validation) — + углубленная проверка, зеленый адресбар (deprecated в браузерах 2019+).

Можно ли использовать CSR повторно?

Да, при renewal можно использовать тот же CSR (тот же ключ). Но ротация ключа — best practice для безопасности.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.