Ansible: создание самозаверяющего SSL-сертификата и ключа

Я хочу создать самозаверяющий сертификат, чтобы использовать его с stunnel, чтобы безопасно туннелировать мой трафик Redis между сервером Redis и клиентом. Я использую эту команду для создания сертификата, и она отлично работает.

openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/stunnel/redis-server.key -out /etc/stunnel/redis-server.crt

Поскольку я использую Ansible для подготовки, я хотел бы знать, как я могу преобразовать это в более Ansible способ, используя модуль. На самом деле существует модуль с именем openssl_certificate Ansible, и в нем указано «Этот модуль позволяет (повторно) генерировать сертификаты OpenSSL».. Я попытался использовать модуль для создания сертификата, но не смог заставить его работать.

- name: Generate a Self Signed OpenSSL certificate
  openssl_certificate:
    path: /etc/stunnel/redis-server.crt
    privatekey_path: /etc/stunnel/redis-server.key
    csr_path: /etc/stunnel/redis-server.csr
    provider: selfsigned

Судя по документации, я не могу указать следующие аргументы -x509 -nodes -days 3650 -newkey rsa:2048. Конечно, я мог бы также разделить генерацию ключа и сертификата, но это все равно не позволило бы мне использовать модуль Ansible, верно?

Дан пример:

openssl genrsa -out /etc/stunnel/key.pem 4096

openssl req -new -x509 -key /etc/stunnel/key.pem -out /etc/stunnel/cert.pem -days 1826

Я хотел бы знать следующие вещи:

  • а) Как я могу получить тот же результат от исходной команды, но с помощью модуля Ansible?
  • б) Есть ли лучший способ управлять самозаверяющими сертификатами с помощью Ansible?

Необходимо 1) Сгенерировать закрытый ключ 2) использовать закрытый ключ для Создание запроса на подпись сертификата (CSR) и 3) использовать закрытый ключ и CSR для Создайте самоподписанный сертификат.

Vladimir Botka 29.05.2019 00:48

Например, см. сертификат-self-signed.yml.

Vladimir Botka 29.05.2019 00:56

Спасибо! - Это именно то, что я искал!

Tom 29.05.2019 17:44
Как включить TLS в gRPC-клиенте и сервере : 2
Как включить TLS в gRPC-клиенте и сервере : 2
Здравствуйте! 🙏🏻 Надеюсь, у вас все хорошо и добро пожаловать в мой блог.
Обновление драйверов Microsoft ODBC (с 17 до 18) для PHP
Обновление драйверов Microsoft ODBC (с 17 до 18) для PHP
Все знают, что PHP v7.4 потерял поддержку, и наши недавние старые приложения должны обновиться до PHP v8.x. ...
10
3
9 739
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
- openssl_privatekey:
    path: /etc/stunnel/redis-server.key
    size: 2048 

- openssl_csr:
    path: /etc/stunnel/redis-server.csr
    privatekey_path: /etc/stunnel/redis-server.key

- openssl_certificate:
    provider: selfsigned
    path: /etc/stunnel/redis-server.crt
    privatekey_path: /etc/stunnel/redis-server.key
    csr_path:/etc/stunnel/redis-server.csr
  • "-newkey rsa:2048" имеет дело с "размером" приватного ключа.
  • "-x509" по умолчанию
  • "-nodes" и "-days 3650" я не смог найти

oof Я думаю, вы правы, но я никогда не использовал это решение в производстве... Если ответ наберет около 5 голосов или кто-то опубликует комментарий, я приму ответ.

Tom 12.10.2019 03:43
openssl_certificate нужен provider: selfsigned. В противном случае это сработало для меня. -days может быть достигнуто с помощью selfsigned_not_after, я думаю.
nondeterministic 06.12.2019 17:04

Другие вопросы по теме