Генерация CSR c OpenSSL в Unix/Linux

Генерация CSR c OpenSSL в Unix/Linux

CSR (Certificate Signing Request) — это запрос на получение сертификата, который представляет собой текстовый файл, содержащий в закодированном виде информацию об администраторе домена и открытый ключ. CSR можно сгенерировать в процессе заказа SSL-сертификата или на стороне веб-сервера.

Чтобы посмотреть информацию по домену, выполните:

# openssl s_client -connect linux-notes.org:443

Или можно посмотреть сертификат по домену следующим образом:

# echo "" | openssl s_client -connect linux-notes.org:443 -prexit 2>/dev/null | sed -n -e '/BEGIN\ CERTIFICATE/,/END\ CERTIFICATE/ p'

А сейчас, перейдем к генерации CSR.

Генерация ключа с OpenSSL

Для начала нужно создать ключ:

# openssl genrsa -out key_name.key 2048

Где:

  • key_name.key — Названия ключа.
  • 2048 — Длина ключа.

Для увеличения дополнительной безопасности можно увеличить длину в битах:

# openssl genrsa -out key_name.key 4096

PS: Данные команды создаут ключ БЕЗ ПАРОЛЯ. При необходимости, можно установить пароль, но для этого нужно добавить опцию «-des3»:

# openssl genrsa -des3 -out key_name.key 4096

Можно указать пароль прям в командной строке:

# openssl genrsa -des3 -out key_name.key -passout pass:YOUR_PASSWORD_HERE 2048

Где:

  • YOUR_PASSWORD_HERE — Это установленный пароль.

Идем далее….

Создание файла запроса на подпись сертификата (CSR)

Ключ уже имеется (сгенерировали его в предыдущем действии) и на основании этого ключа, можно создать запрос на подпись сертификата с приминением алгоритма sha256:

# openssl req -out CSR.csr -key key_name.key -new -sha256

После чего, стоит ввести необходимую информацию:

  • Country Name () —  Задаем имя страны, нужно ввести двухбуквенный код вашей страны в формате Международной организации по стандартизации (ISO), обозначающий страну, где ваша организация официально зарегистрирована.
  •  State or Province Name (full name) — Введите область или штат, где расположена ваша организация. Не используйте сокращения.
  • Locality Name (eg, city) — Вводим город или населенный пункт, где расположена ваша организация. Не используйте сокращения.
  • Organization Name (eg, company) — Вводим название вашей организации.
  • Organizational Unit Name (eg, section) — Название организационного подразделения.
  • Common Name (eg, fully qualified host name) — Вводим название домена или URL, который требуется защитить.
    Если вы запросили сертификат Wildcard, добавьте звездочку (*) слева от общего имени там, где требуется универсальный символ, например *.linux-notes.org.
  • Email Address — Вводим свой почтовый адрес.

Для проверки CSR, можно использовать следующую команду:

# openssl req -in CSR.csr -noout -text

Ответ должен показывать следующее, если подпись верна.

Signature Algorithm: sha256WithRSAEncryption

PS: Чтобы выполнить сгенерировать все что необходимо одной командой, выполните:

# openssl req -new -newkey rsa:2048 -nodes -out NAME_of_CSR.csr -keyout NAME_of_KEY.key -subj "/C=US/ST=Wisconsin/L=Waukesha/O=IT Dept/OU=The linux-notes companies/CN=www.linux-notes.org"

Где:

  • -out NAME_of_CSR.csr — Задаем имя CSR.
  • -keyout NAME_of_KEY.key — Задаем имя ключа.
  • -subj «/C=US/ST=Wisconsin/L=Waukesha/O=IT Dept/OU=The linux-notes companies/CN=www.linux-notes.org» — Чтобы не вводить руками необходимую информацию в процессе генерации CSR, можно использовать данную команду.

Для проверки использующего алгоритма, можно использовать следующую команду:

# openssl s_client -connect linux-notes.org:443 < /dev/null 2>/dev/null | openssl x509 -text -in /dev/stdin | grep "Signature Algorithm"

Установка сертификата (CRT)

Все зависит от того, какое ПО вы будите использовать. Я не стану рассказывать как правильно устанавливать сертификаты. Если у кого-то возникнут трудности — я смогу помочь.

Тестирование установленного сертификата

Я приведу несколько сервисов которыми пользуюсь, для тестирования сертификатов на предмет правильной установки, срока валидности и т.д.

  • Ssllabs(точка)com
  • Sslshopper(точка)com
  • Digicert(точка)com

Полезное чтиво:

Примеры использования OpenSSL в Unix/Linux

На этом у меня все, статья «Генерация CSR с OpenSSL с SHA256» завершена.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.