community.crypto.acme_account – Создание, изменение или удаление учётных записей ACME
Примечание
Этот плагин входит в коллекцию community.crypto (версия 1.4.0).
Для его установки используйте: ansible-galaxy collection install community.crypto.
Чтобы использовать его в playbook, укажите: community.crypto.acme_account.
Описание
- Позволяет создавать, изменять или удалять учётные записи у CA, поддерживающей протокол ACME, например Let’s Encrypt.
- Этот модуль работает только с протоколом ACME v2.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- либо openssl, либо cryptography >= 1.5
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| account_key_content строка | Содержимое ключа учётной записи ACME RSA или эллиптической кривой. Взаимоисключающее с account_key_src.Требуется, если account_key_src не используется.*Предупреждение:* содержимое будет записано во временный файл, который будет удалён Ansible по завершении модуля. Поскольку это важный закрытый ключ, который может быть использован для изменения ключа учётной записи или для аннулирования сертификатов, это может быть неприемлемо. В случае использования cryptography, содержимое не записывается во временный файл. Однако всё ещё возможно, что оно будет записано на диск Ansible в процессе перемещения модуля с аргументом на узел, где он выполняется. | ||
| account_key_src путь | Путь к файлу, содержащему ключ учётной записи ACME RSA или эллиптической кривой. Закрытые ключи можно создать с помощью модуля community.crypto.openssl_privatekey. Если необходимые компоненты (pyOpenSSL или cryptography) недоступны, ключи также можно создать непосредственно с помощью инструмента openssl командной строки: ключи RSA можно создать с помощью openssl genrsa ..., а ключи эллиптических кривых - с помощью openssl ecparam -genkey .... Можно использовать и любые другие инструменты, создающие закрытые ключи в формате PEM.Взаимоисключающее с account_key_content.Требуется, если account_key_content не используется.псевдонимы: account_key | ||
| account_uri строка | Если указано, предполагается, что URI учётной записи указан. Если ключ учётной записи не соответствует этой учётной записи или учётная запись с этим URI не существует, модуль завершается с ошибкой. | ||
| acme_directory строка | Используемый каталог ACME. Это URL-адрес точки входа для доступа к API сервера CA. В целях безопасности значение по умолчанию установлено на тестовый сервер Let's Encrypt (для протокола ACME v1). Это позволит создать технически корректные, но ненадёжные сертификаты. Значение по умолчанию: https://acme-staging.api.letsencrypt.org/directory. Обратите внимание, что в community.crypto 2.0.0 этот параметр *будет обязательным* и больше не будет иметь значения по умолчанию. Все тестовые конечные точки Let's Encrypt можно найти здесь: https://letsencrypt.org/docs/staging-environment/. Все конечные точки Buypass можно найти здесь: https://community.buypass.com/t/63d4ay/buypass-go-ssl-endpoints
Для Let's Encrypt URL каталога производства для ACME v1: https://acme-v01.api.letsencrypt.org/directory, а для ACME v2: https://acme-v02.api.letsencrypt.org/directory. Для Buypass URL каталога производства для ACME v2 и v1: https://api.buypass.com/acme/directory. *Предупреждение:* До сих пор модуль тестировался только с Let's Encrypt (тестовая и рабочая среды), Buypass (тестовая и рабочая среды) и Pebble тестовым сервером. | ||
| acme_version целое число |
| Версия ACME конечной точки. Должно быть 1 для классических конечных точек Let's Encrypt и Buypass ACME, или 2 для стандартных конечных точек ACME v2. Значение по умолчанию — 1. Обратите внимание, что в community.crypto 2.0.0 этот параметр *будет обязательным* и больше не будет иметь значения по умолчанию. Также обратите внимание, что поддержка ACME v1 будет в конечном итоге устаревать. | |
| allow_creation булево |
| Разрешить ли создание учётной записи (когда состояние равно present). | |
| contact список / элементы=строка | Значение по умолчанию: [] | Список URL-адресов контактов. Электронные адреса должны быть с префиксом mailto:.См. https://tools.ietf.org/html/rfc8555#section-7.3 для разрешённых значений. Должен быть указан, когда состояние равно present . Будет проигнорирован, если состояние равно absent или changed_key. | |
| external_account_binding словарь добавлен в 1.1.0 community.crypto | Позволяет предоставить данные для привязки внешней учётной записи во время создания учётной записи. Используется CA, например Sectigo, для привязки новой учётной записи ACME к существующей CA-учётной записи, чтобы корректно идентифицировать клиента. Используется только при создании новой учётной записи. Не может быть указан для ACME v1. | ||
| alg строка / обязательно |
| Алгоритм MAC, предоставляемый CA. Если не указан CA, это, вероятно, HS256. | |
| key строка / обязательно | Значение ключа MAC в кодировке Base64 URL, предоставленное CA. Заполнение ( = символы в конце) можно опустить. | ||
| kid строка / обязательно | Идентификатор ключа, предоставленный CA. | ||
| new_account_key_content строка | Содержимое ключа учётной записи ACME RSA или эллиптической кривой для изменения. Применимы те же ограничения, что и к account_key_content.Взаимоисключающее с new_account_key_src.Требуется, если new_account_key_src не используется и состояние равно changed_key. | ||
| new_account_key_src путь | Путь к файлу, содержащему ключ учётной записи ACME RSA или эллиптической кривой для изменения. Применимы те же ограничения, что и к account_key_src.Взаимоисключающее с new_account_key_content.Требуется, если new_account_key_content не используется и состояние равно changed_key. | ||
| select_crypto_backend строка |
| Определяет используемый криптографический бэкенд. Значение по умолчанию — auto, которое пытается использовать cryptography, если доступно, и переходит на openssl.Если установлено openssl, будет предпринята попытка использовать двоичный файл openssl.Если установлено cryptography, будет использована библиотека cryptography. | |
| state строка / обязательно |
| Состояние учётной записи, определяемое её ключом. Если состояние равно absent, учётная запись будет отсутствовать или отключена.Если состояние равно changed_key, учётная запись должна существовать. Ключ учётной записи будет изменён; другая информация не будет изменена. | |
| terms_agreed булево |
| Булевое значение, указывающее, согласны ли вы с условиями обслуживания. Серверы ACME могут потребовать, чтобы это значение было истинным. | |
| validate_certs булево |
| Указывает, будут ли проверены сертификаты TLS при обращении к каталогу ACME. *Предупреждение:* Должно *только* устанавливаться в no в тестовых целях, например, при тестировании с локальным сервером Pebble. | |
Примечания
Примечание
- Модуль community.crypto.acme_certificate также позволяет выполнять базовые операции с учётной записью. При использовании обоих модулей рекомендуется отключить управление учётной записью для модуля community.crypto.acme_certificate. Для этого используйте опцию
modify_accountмодуля community.crypto.acme_certificate. - Если доступна достаточно новая версия библиотеки
cryptography, (подробнее см. Требования), она будет использована вместо бинарникаopenssl. Это можно явно отключить или включить с помощью опцииselect_crypto_backend. Обратите внимание, что использование бинарникаopensslбудет медленнее и менее безопасным, так как содержимое закрытого ключа всегда должно храниться на диске (см.account_key_content). - Хотя значения по умолчанию выбраны так, чтобы модуль мог использоваться с центром сертификации Let’s Encrypt, в принципе, модуль может использоваться с любым центром сертификации, предоставляющим конечную точку ACME, например, Buypass Go SSL.
См. также
См. также
- Automatic Certificate Management Environment (ACME)
-
Спецификация протокола ACME (RFC 8555).
- community.crypto.acme_account_info
-
Получает данные об учётной записи ACME.
- community.crypto.openssl_privatekey
-
Может использоваться для создания закрытого ключа.
- community.crypto.acme_inspect
-
Позволяет отладить проблемы.
Примеры
- name: Make sure account exists and has given contacts. We agree to TOS.
community.crypto.acme_account:
account_key_src: /etc/pki/cert/private/account.key
state: present
terms_agreed: yes
contact:
- mailto:me@example.com
- mailto:myself@example.org
- name: Make sure account has given email address. Don't create account if it doesn't exist
community.crypto.acme_account:
account_key_src: /etc/pki/cert/private/account.key
state: present
allow_creation: no
contact:
- mailto:me@example.com
- name: Change account's key to the one stored in the variable new_account_key
community.crypto.acme_account:
account_key_src: /etc/pki/cert/private/account.key
new_account_key_content: '{{ new_account_key }}'
state: changed_key
- name: Delete account (we have to use the new key)
community.crypto.acme_account:
account_key_content: '{{ new_account_key }}'
state: absent
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| account_uri строка | всегда | URI учётной записи ACME или None, если учётная запись не существует. |
Авторы
- Felix Fontein (@felixfontein)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/crypto/acme_account_module.html