Как создать самоподписанный SSL-сертификат в командной строке Linux

Протокол SSL (Secure Sockets Layer) обеспечивает аутентификацию и шифрование данных по сети между клиентом и сервером. SSL-сертификат аналогичным образом создает зашифрованный мост между веб-сайтом и браузером. Согласно своему названию, этот сертификат подписывается тем, кто его создает.

SSL-сертификаты имеют тот же уровень шифрования, что и доверенные SSL-сертификаты с подписью CA. Используя openssl, вы можете создать самоподписанный SSL-сертификат в командной строке Linux всего за несколько шагов. В этом руководстве рассматривается создание самоподписанного SSL-сертификата в Linux.

Как создать самоподписанный SSL-сертификат в командной строке Linux

Сгенерировать сертификат в командной строке Linux и подписать его с помощью закрытого ключа очень просто. Здесь мы можем создать наш SSL-сертификат, выполнив несколько шагов с помощью терминала.

Установите OpenSSL в Linux

OpenSSL - это инструмент командной строки с открытым исходным кодом, который позволяет выполнять различные задачи, связанные с SSL. Этот инструмент также необходим для генерации самоподписанных SSL-сертификатов, которые можно легко установить с помощью репозиториев Linux. Установить его можно с помощью следующих команд:

для дистрибутивов на базе Debian

для Arch Linux

для дистрибутивов на базе RPM

Создание самоподписанного сертификата

После успешной установки OpenSSL можно сгенерировать SSL-сертификат с помощью всего одной команды. OpenSSL создает сертификат и связанный с ним ключ шифрования в текущем каталоге. Поэтому откройте каталог, в котором вы хотите создать ключ или сертификат. Здесь мы создадим самоподписанный SSL-сертификат с именем "sample" с помощью следующей команды:

sudo openssl req -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out sample.crt -keyout sample.key

Попробуем лучше понять предыдущую команду, разбив ее на части:

  • newkey rsa:4096 Создает 4096-битный ключ RSA и новый запрос сертификата (2048 — бит по умолчанию).
  • х509 - Создает сертификат X.509.
  • sha256 - Используйте 265-битный SHA.
  • days 365 Количество дней для сертификации SSL-сертификата.
  • nodes - Генерирует ключ без парольной фразы.
  • out - Указывает имя файла вновь созданного сертификата.
  • keyout - Указывает имя файла только что созданного закрытого ключа.

Система задаст вам вопросы, относящиеся к данной организации, для обработки предполагаемого сертификата.

 Для использования сертификата в целях тестирования или личной разработки можно использовать любое значение, отличное от поля общего имени. Кроме того, необходимо ввести домен сайта, на котором установлен сертификат.

Если вы хотите, чтобы ваш закрытый ключ был зашифрован, удалите опцию -nodes из предыдущей команды.

Чтение содержимого самоподписанного SSL-сертификата

Проверить расположение только что созданных сертификатов и закрытых ключей можно с помощью команды ls. Поскольку мы создали файл с именем "sample", мы должны найти этот файл и его закрытый ключ в каталоге.

Созданный сертификат имеет формат PEM. Для чтения его содержимого выполните в терминале следующую команду:

В предыдущей команде мы указали следующее:

  • -noout Выводит кодированную версию сертификата.
  • -in Указывает файл, содержащий сертификат.
  • -text Печатает вывод сертификата в текстовом виде.

И наоборот, для извлечения открытого ключа из сертификата используйте команду -x509 с опцией -pubkey. В этом случае сертификат выводит открытый ключ в формате PEM.

Генерация самоподписного SSL-сертификата без подсказки

Если вы не хотите получать ответы на вопросы при генерации самоподписного SSL-сертификата, вы можете указать всю информацию о субъекте с помощью опции -subj следующим образом:

Список полей, указываемых в параметре -subj, приведен ниже:

  • C - Название страны (аббревиатура ISO из двух букв).
  • СТ - Название провинции или штата.
  • L  -Название населенного пункта (город, в котором вы жили).
  • O - Полное название вашей организации.
  • OU  -Организационная единица.
  • CN - Полное доменное имя.

Заключение

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

В этом руководстве содержится все необходимое для создания самоподписанного SSL-сертификата в командной строке Linux с помощью инструмента openssl. Для этого необходимо предоставить подробную информацию о сертификате, например, определить срок его действия, размер ключа и т.д.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий