Skip to content

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

Коротко:

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

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

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

  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
СертификатСрок, издатель, домены (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 для безопасности.