bg-tutorials

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

Этот учебник объясняет, как сгенерировать CSR (Certificate Signing Request) для Pound, легковесного обратного проксі-сервера и балансировщика нагрузки. Поскольку в Pound нет встроенного инструмента для создания CSR, вы будете использовать OpenSSL для создания CSR и приватного ключа, а затем отправите CSR в удостоверяющий центр.

Примечание: Первоначальный проект Apsis Pound был прекращён в сентябре 2022 года, когда компания Apsis GmbH была ликвидирована. Активно поддерживаемым преемником является форк graygnuorg/pound (в настоящее время версия 4.x). Процесс генерации CSR, описанный ниже, работает как для старого Pound, так и для текущего форка, поскольку он основан на OpenSSL, а не на самом Pound.

Создание CSR и приватного ключа

У вас есть два варианта для создания CSR:

  • Использовать CSR Generator, чтобы создать CSR автоматически, без выполнения каких-либо команд.
  • Сгенерировать CSR вручную с помощью OpenSSL на сервере, где работает Pound, как описано ниже.

Шаг 1: Выполните команду OpenSSL

Подключитесь к серверу Pound через SSH и выполните следующую команду. Замените каждый placeholder на ваши реальные данные:

openssl req -new -newkey rsa:2048 -sha256 -nodes 
  -keyout yourdomain.key 
  -out yourdomain.csr 
  -subj "/C=US/ST=California/L=San Jose/O=Your Company LLC/CN=yourdomain.com" 
  -addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"

Эта единственная команда создаёт два файла в текущей директории:

  • yourdomain.key — ваш приватный ключ. Храните этот файл в безопасности и не передавайте его никому.
  • yourdomain.csr — Certificate Signing Request, который вы отправите в CA.

Шаг 2: Разберитесь с полями

Каждое поле в строке -subj идентифицирует вашу организацию для удостоверяющего центра:

  • C: двухбуквенный код страны (например, US).
  • ST: штат или область (например, California).
  • L: город или населённый пункт (например, San Jose).
  • O: полное юридическое наименование организации (например, Your Company LLC).
  • CN: полностью определённое доменное имя, которое вы хотите защитить (например, yourdomain.com).

Опция -addext добавляет альтернативные имена субъекта (SAN). Современные браузеры проверяют сертификат по списку SAN, а не по полю CN. Включите каждый вариант домена, который должен быть охвачен, например, и yourdomain.com, и www.yourdomain.com.

Шаг 3: Проверьте и отправьте CSR

Откройте файл CSR в любом текстовом редакторе или выведите его в терминал:

cat yourdomain.csr

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

Шаг 4: Обеспечьте безопасность приватного ключа

Файл приватного ключа (yourdomain.key) создаётся вместе с CSR. Переместите его в безопасное место и ограничьте права доступа:

sudo mkdir -p /etc/ssl/private
sudo mv yourdomain.key /etc/ssl/private/
sudo chmod 600 /etc/ssl/private/yourdomain.key

Этот ключ понадобится вам при установке SSL на Pound. Если вы потеряете приватный ключ, вам придётся сгенерировать новый CSR и перевыпустить сертификат.

Что происходит далее: установка сертификата на Pound

После того как CA проверит ваш запрос и выпустит сертификат, вы получите файлы сертификата (обычно сертификат сервера и пакет CA с промежуточными сертификатами). Pound требует все эти файлы, а также приватный ключ, объединённые в один PEM-файл в определённом порядке:

  1. Ваш сертификат сервера (например, yourdomain.crt).
  2. Промежуточные сертификаты (пакет CA).
  3. Ваш приватный ключ (например, yourdomain.key).

Команда для объединения выглядит так:

sudo sh -c 'cat yourdomain.crt yourdomain.ca-bundle /etc/ssl/private/yourdomain.key > /etc/ssl/pound.pem'
sudo chmod 600 /etc/ssl/pound.pem

Обратите внимание на путь к ключу: на Шаге 4 он был перемещён в /etc/ssl/private/, поэтому его больше нет в директории, из которой вы запускали команду OpenSSL. Ключ внутри этого файла не должен быть защищён паролем, поскольку Pound работает как демон и не имеет возможности запросить пароль — за это отвечает параметр -nodes в команде выше. Объединённый файл содержит ваш приватный ключ, поэтому храните его так, чтобы он был доступен для чтения только root-пользователю. Затем вы указываете блоку ListenHTTPS Pound путь к этому объединённому файлу с помощью директивы Cert. Полное руководство по установке см. в статье Как установить SSL-сертификат на Pound.

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

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

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

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