Запрос на подпись сертификата (CSR) — это первый шаг к получению SSL/TLS-сертификата от доверенного центра сертификации (Certificate Authority). Этот криптографический файл содержит информацию о будущем владельце и его публичный ключ. Без правильно сформированного CSR невозможно настроить безопасное HTTPS-соединение для веб-сервера.
Что находится внутри CSR-файла
CSR создается с помощью инструментов вроде OpenSSL и включает несколько обязательных компонентов. Основу составляет пара ключей шифрования: приватный ключ, который остается на сервере, и публичный ключ, отправляемый в CA. Важнейшим элементом является блок информации Subject, который идентифицирует владельца.
Ключевые поля Subject, которые необходимо заполнить:
- Common Name (CN): Полное доменное имя сайта, например, www.example.com.
- Organization (O): Юридическое название компании или организации.
- Organizational Unit (OU): Подразделение, отвечающее за сертификат (например, IT Department).
- Locality (L) и State/Province (ST): Город и регион.
- Country (C): Двухбуквенный код страны (RU для России).
Для повышения гибкости можно добавить альтернативные имена (SAN), чтобы один сертификат защищал несколько доменов или субдоменов.

Пошаговая генерация CSR с помощью OpenSSL
OpenSSL — стандартный инструмент для работы с криптографией и SSL-инструментами. Процесс генерации состоит из двух этапов: создания приватного ключа и формирования самого запроса.
Последовательность команд в терминале:
- Создать приватный ключ RSA:
openssl genrsa -out private.key 2048 - Сгенерировать CSR на основе ключа:
openssl req -new -key private.key -out request.csr
После второй команды OpenSSL в интерактивном режиме запросит все необходимые атрибуты запроса для заполнения Subject. Для автоматизации можно использовать конфигурационный файл с расширенными параметрами, включая OID и код подписи.
Выбор алгоритма и длины ключа
Криптографическая стойкость зависит от алгоритма и размера ключа.
| Алгоритм | Рекомендуемая длина | Использование |
|---|---|---|
| RSA | 2048 или 4096 бит | Наиболее распространен, универсальная поддержка |
| ECC (Elliptic Curve) | P-256 или P-384 | Выше производительность при меньшей длине ключа |
Для максимальной безопасности сайта и совместимости с будущими стандартами многие специалисты рекомендуют сразу рассматривать ECC.
Проверка и отправка CSR в центр сертификации
Перед отправкой CSR в выбранный CA необходимо убедиться в корректности его содержимого. Ошибка в данных приведет к отказу в выпуске или проблемам с установкой сертификата.
Для проверки используйте команду: openssl req -in request.csr -noout -text. Она выведет все поля запроса в читаемом формате. Особое внимание уделите полю Common Name и списку SAN (если он есть). Убедитесь, что название организации и страна указаны точно.
После проверки содержимое CSR (это текст в кодировке Base64 между строками BEGIN и END) копируют в форму заказа на сайте центра сертификации. Сам файл в формате PEM можно отправить как есть. Приватный ключ при этом никуда не передается — он остается на сервере для последующей установки сертификата.
Распространенные ошибки и их решение
- Неверный Common Name: Указывают внутреннее имя сервера вместо публичного домена. Исправляется повторной генерацией CSR.
- Слабый ключ: Использование алгоритма RSA длиной 1024 бита. Современные центры сертификации такие запросы отклоняют.
- Проблемы с кодировкой: Специальные символы в названии организации. Лучше использовать только латинские буквы.
Если приватный ключ утерян после выпуска сертификата, единственное решение — отзыв сертификата (revoke) и выпуск нового с новым CSR.
Дальнейшие шаги после получения сертификата
Центр сертификации после проверки данных выдает несколько файлов: основной сертификат, промежуточные сертификаты и, иногда, корневой сертификат. Для работы по цепочке доверия все они должны быть установлены на веб-сервер.
Процесс установки зависит от ПО:
- Apache: Указываются пути к файлам сертификата и приватного ключа в конфигурации виртуального хоста.
- Nginx: Сертификат и ключ прописываются в директивах
ssl_certificateиssl_certificate_key. - IIS: Установка осуществляется через оснастку управления сертификатами.
После установки необходимо проверить конфигурацию с помощью внешних сервисов, таких как SSL Labs. Они оценивают корректность цепочки, актуальность алгоритмов и общий уровень безопасности сайта.
Важные моменты для администратора
Срок действия сертификата сегодня редко превышает 13 месяцев. Отслеживайте дату истечения, чтобы заранее инициировать перевыпуск. Для этого потребуется сгенерировать новый CSR. Автоматизируйте этот процесс там, где это возможно, чтобы исключить простои из-за просроченного HTTPS-соединения.
Храните приватный ключ в безопасном месте с ограниченным доступом. Его компрометация означает крах всей модели безопасности, построенной на SSL/TLS, и потребует немедленного отзыва сертификата.