bg-tutorials

Как создать CSR на Sentora

Это руководство показывает как сгенерировать CSR (запрос на подпись сертификата) на Sentora с помощью OpenSSL. В панели управления Sentora нет встроенного инструмента для CSR, поэтому запрос создаётся непосредственно на сервере, который работает на Apache и Linux. Одна команда сразу создаёт два файла: приватный ключ, который остаётся на вашем сервере, и CSR, который вы отправляете своему центру сертификации (CA).

Сам Sentora развивается медленно, но не заброшен; текущий стабильный релиз — v2.0.2 (май 2024, на PHP 7.4), поддерживаемый бывшими разработчиками ZPanel, а описанный ниже процесс работы с OpenSSL не зависит от версии панели.

Если вы уже сгенерировали CSR и получили выпущенный сертификат от вашего CA, переходите сразу к разделу установка SSL-сертификата на Sentora. В противном случае следуйте инструкциям ниже.

Шаг 1: Войдите на сервер под root

Откройте SSH-сессию к серверу, на котором работает Sentora, и получите права root. Строго говоря, генерация CSR не требует прав root, но они понадобятся вам для установки OpenSSL на следующем шаге, если он отсутствует:

sudo -i

Шаг 2: Убедитесь, что OpenSSL установлен

OpenSSL поставляется с каждой актуальной версией Debian, Ubuntu, CentOS, AlmaLinux и Rocky Linux, поэтому он почти наверняка уже установлен. Проверьте версию:

openssl version

Если команда выводит номер версии, переходите к шагу 3. Если OpenSSL не установлен, добавьте его с помощью менеджера пакетов вашего дистрибутива.

На Debian или Ubuntu:

apt update && apt install -y openssl

На CentOS, AlmaLinux или Rocky Linux:

dnf install -y openssl

На более старых системах, где dnf недоступен, команда yum install -y openssl работает точно так же.

Шаг 3: Сгенерируйте приватный ключ и CSR

Выполните приведённую ниже команду из каталога, в который у вас есть право на запись, например, домашнего каталога. Она за один шаг создаёт приватный ключ и CSR и включает альтернативные имена субъекта (SAN), которые требуют современные браузеры и центры сертификации:

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

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

  • req -new создаёт новый запрос на подпись сертификата.
  • -newkey rsa:2048 генерирует новый 2048-битный приватный ключ RSA. 2048 бит — это текущий минимум для публичных сертификатов; используйте rsa:4096, если хотите более длинный ключ.
  • -nodes оставляет приватный ключ незашифрованным (без пароля), чтобы Apache мог запускаться без запроса пароля. Это переносимый вариант написания, работающий на любой сборке OpenSSL.
  • -keyout example.key записывает приватный ключ. Держите этот файл в секрете и никогда никому не отправляйте.
  • -out example.csr записывает CSR, который вы отправляете в CA.
  • -subj заполняет поля субъекта прямо в команде, чтобы она выполнялась без интерактивных запросов. Установите CN (Common Name) равным вашему полному доменному имени.
  • -addext «subjectAltName=…» добавляет записи SAN. CA выпускают сертификаты на основе списка SAN, поэтому включите каждое имя хоста, которое должен покрывать сертификат.

Замените каждый плейсхолдер вашими реальными данными:

  • example.com: ваш реальный домен, как в CN, так и в списке SAN.
  • C, ST, L, O: ваш двухбуквенный код страны (заглавными буквами, например US или GB), область или регион, город и юридическое название организации. Для сертификата с проверкой домена (DV) эти поля не проверяются, но команде всё равно требуются валидные значения.
  • example.key и example.csr: любые имена файлов на ваш выбор, главное — сохранять единообразие.

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

Защита wildcard-сертификата или дополнительных поддоменов

Чтобы добавить больше имён хостов, расширьте список SAN дополнительными записями DNS:, разделёнными запятыми, например DNS:api.example.com. Для wildcard-сертификата установите CN равным *.example.com и оставьте корневой домен в списке SAN. Wildcard-сертификат покрывает ровно один уровень поддоменов (www.example.com, mail.example.com), но не сам корневой домен (example.com), поэтому его нужно указать отдельно, чтобы он тоже был покрыт:

-addext "subjectAltName=DNS:*.example.com,DNS:example.com"

Предпочитаете ключ ECDSA?

Ключи ECDSA меньше и быстрее, чем RSA при том же уровне безопасности, и поддерживаются всеми современными браузерами. Чтобы вместо этого сгенерировать ключ и CSR по кривой P-256 (prime256v1), замените аргумент -newkey:

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes 
-keyout example.key 
-out example.csr 
-subj "/C=US/ST=New York/L=New York/O=Example LLC/CN=example.com" 
-addext "subjectAltName=DNS:example.com,DNS:www.example.com"

Параметр ec_param_enc:named_curve сохраняет кривую по имени, что требуется стандартом PKIX; без него некоторые сборки OpenSSL встраивают полные параметры кривой, и CA отклоняет запрос.

Шаг 4: Проверьте CSR

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

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

Найдите в выводе строку verify OK, убедитесь, что строка Subject показывает ваше общее имя, и подтвердите, что раздел X509v3 Subject Alternative Name перечисляет все ожидаемые имена хостов. Если какого-то SAN не хватает, пересоздайте CSR с корректным значением -addext. Вы также можете вставить запрос в наш онлайн-инструмент декодер CSR, чтобы проверить эти поля прямо в браузере.

Шаг 5: Найдите и отправьте CSR

Выведите список файлов в рабочем каталоге, чтобы убедиться, что оба файла созданы:

ls -l example.key example.csr

Вы находитесь на Linux-сервере, поэтому открывайте CSR с помощью терминального просмотрщика, а не редактора Windows. Выведите его содержимое на экран с помощью:

cat example.csr

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

-----BEGIN CERTIFICATE REQUEST-----
MIIC...base64-encoded data...AB
-----END CERTIFICATE REQUEST-----

Вставьте этот блок в форму заказа SSL-сертификата. После того как CA проверит запрос и выпустит ваш сертификат, следуйте нашему руководству по установке SSL-сертификата на Sentora, чтобы развернуть его. Храните файл example.key на сервере: он понадобится вам вместе с выпущенным сертификатом для включения HTTPS, и вы никогда не должны отправлять его в CA или кому-либо ещё.

Если вы предпочитаете вообще не использовать командную строку, вы можете сформировать запрос с помощью нашего генератора CSR и вставить результат в форму заказа.

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

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

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

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