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-сертификатах. Превращает сложные темы кибербезопасности в понятный, увлекательный контент. Вносите свой вклад в повышение уровня цифровой безопасности с помощью впечатляющих рассказов.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.