community.crypto.acme_account – Создание, изменение или удаление учетных записей ACME
Примечание
Этот плагин входит в коллекцию community.crypto (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.crypto.
Для использования в книге задач укажите: 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 testing server. | ||
| 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 логическое значение |
| Определяет, будут ли при вызовах в каталог ACME проверены сертификаты TLS. *Предупреждение:* Следует *только* устанавливать значение 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.
См. также
См. также
- Автоматическая система управления сертификатами (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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/crypto/acme_account_module.html