Как избежать запроса OpenSSL и использовать конфигурационный файл?

Как создать сертификат SSL без интерактивного режима с помощью OpenSSL

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

Подготовка конфигурационного файла

Для начала, убедитесь, что у вас есть корректно настроенный конфигурационный файл ssl.config. В этом файле вы можете указать всю необходимую информацию для вашего сертификата, такую как провинция, штат и организация. Однако, чтобы сделать процесс неинтерактивным, вам нужно будет внести некоторые изменения.

Добавьте следующие строки в ваш конфигурационный файл:

[req]
distinguished_name = req_dn
prompt = no

[req_dn]
countryName = IT
organizationName = Some org
commonName = foo.example.com

Здесь мы задаем prompt = no, что сигнализирует OpenSSL о том, что не нужно запрашивать ввод у пользователя.

Создание сертификата без интерактивного ввода

Теперь, когда ваш конфигурационный файл настроен, вы можете использовать следующие команды для автоматического создания ключей и сертификатов. Обратите внимание на параметры, которые должны быть указаны для каждой команды. Это поможет вам избежать интерактивного режима.

Вот пример сценария, который вы можете использовать:

set -e

DOMAIN=blu.priv
HOSTNAME=`hostname`

openssl req -new -config ssl.config -newkey rsa:4096 -days 3650 -x509 -nodes -keyout demoCA/$DOMAIN.key -out demoCA/$DOMAIN.crt -batch

openssl genrsa -aes256 -passout file:passphrase.txt -out demoCA/private/$DOMAIN.key 4096

openssl req -new -config ssl.config -x509 -days 3650 -key demoCA/private/$DOMAIN.key -passin file:passphrase.txt -keyout demoCA/$DOMAIN.key -out demoCA/$DOMAIN.crt -batch

openssl req -config ssl.config -passout file:passphrase.txt -newkey rsa:4096 -keyout $HOSTNAME.key -out $HOSTNAME.req -batch

yes | openssl ca -config ssl.config -passin file:passphrase.txt -out $HOSTNAME.crt -infiles $HOSTNAME.req 

for i in *key; do openssl rsa -passin file:passphrase.txt -in $i -out $i; done

Объяснение команд

  • set -e: эта команда заставляет сценарий завершаться при любой ошибке.
  • openssl req -new: создает новый сертификат.
  • -newkey rsa:4096: генерирует новый RSA-ключ длиной 4096 бит.
  • -days 3650: задает срок действия сертификата равным 10 годам.
  • -x509: позволяет создавать самозаверяющий сертификат вместо CSR.
  • -batch: отключает интерактивный режим.
  • openssl genrsa: генерирует закрытый ключ с заданным паролем.
  • openssl ca: подписывает сертификат с помощью вашего Центра сертификации.

Заключение

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

Источник

Ответить

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