community.crypto.acme_account_info – Получение информации об учетных записях ACME
Примечание
Этот плагин входит в коллекцию community.crypto (версия 1.4.0).
Для его установки используйте: ansible-galaxy collection install community.crypto.
Для использования в playbook укажите: community.crypto.acme_account_info.
Обзор
- Позволяет получить информацию об учетных записях 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, а URL каталога для 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. |
| retrieve_orders строка |
| Получать ли список URL-адресов заказов или объекты заказов, если они предоставляются сервером ACME. Значение ignore не будет извлекать список заказов.В настоящее время Let's Encrypt не возвращает заказы, поэтому результат orders всегда будет пустым. |
| select_crypto_backend строка |
| Определяет, какой криптографический бэкенд использовать. Значение по умолчанию — auto, которое пытается использовать cryptography при его наличии и переходит к openssl в противном случае.Если установлено openssl, будет использоваться openssl бинарник.Если установлено cryptography, будет использована библиотека cryptography. |
| validate_certs логическое значение |
| Указывает, будут ли проверять сертификаты TLS при вызовах в каталог ACME. *Предупреждение:* *только* следует устанавливать в no в тестовых целях, например, при тестировании на локальном сервере Pebble. |
Примечания
Примечание
- Модуль community.crypto.acme_account позволяет изменять, создавать и удалять учетные записи ACME.
- Этот модуль назывался
acme_account_factsдо Ansible 2.8. Использование не изменилось. - Поддерживает
check_mode. - Если доступна достаточно новая версия библиотеки
cryptography, она будет использоваться вместо бинарникаopenssl. Это можно явно отключить или включить с помощью параметраselect_crypto_backend. Обратите внимание, что использование бинарникаopensslбудет медленнее и менее безопасно, так как содержимое закрытых ключей всегда должно храниться на диске (см.account_key_content). - Хотя значения по умолчанию выбраны таким образом, чтобы модуль можно было использовать с CA Let’s Encrypt, в принципе, модуль может использоваться с любой CA, предоставляющей конечную точку ACME, например, с Buypass Go SSL.
См. также
См. также
- community.crypto.acme_account
-
Позволяет создавать, изменять или удалять учетную запись ACME.
Примеры
- name: Check whether an account with the given account key exists
community.crypto.acme_account_info:
account_key_src: /etc/pki/cert/private/account.key
register: account_data
- name: Verify that account exists
assert:
that:
- account_data.exists
- name: Print account URI
ansible.builtin.debug:
var: account_data.account_uri
- name: Print account contacts
ansible.builtin.debug:
var: account_data.account.contact
- name: Check whether the account exists and is accessible with the given account key
acme_account_info:
account_key_content: "{{ acme_account_key }}"
account_uri: "{{ acme_account_uri }}"
register: account_data
- name: Verify that account exists
assert:
that:
- account_data.exists
- name: Print account contacts
ansible.builtin.debug:
var: account_data.account.contact
Возвращаемые значения
Общие возвращаемые значения описаны здесь, а следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание | ||
|---|---|---|---|---|
| account словарь | если учетная запись существует | Информация об учетной записи, полученная с сервера ACME. | ||
| contact список / элементы=строка | всегда | ресурс вызова, который должен быть создан для проверки Пример: ['mailto:me@example.com', 'tel:00123456789'] | ||
| orders строка | всегда | URL, где можно получить список заказов для этой учетной записи. Используйте параметр retrieve_orders для запроса этого URL-адреса и получения полного списка заказов. Пример: https://example.ca/account/1/orders | ||
| public_account_key строка | всегда | открытый ключ учетной записи в виде JSON Web Key. Пример: {"kty":"EC","crv":"P-256","x":"MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4","y":"4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM"} | ||
| status строка | всегда | статус учетной записи Пример: valid | ||
| account_uri строка | всегда | URI учетной записи ACME, или None, если учетная запись не существует. | ||
| exists булево | всегда | Существует ли учетная запись. | ||
| orders список / элементы=строка | если учетная запись существует, retrieve_orders не ignore, и сервер поддерживает отображение заказов | Список заказов. Если retrieve_orders это url_list, это будет список URL-адресов.Если retrieve_orders это object_list, это будет список объектов. | ||
| authorizations список / элементы=строка | успех | Список URL-адресов авторизаций для этого заказа. | ||
| certificate строка | при выдаче сертификата | URL для получения сертификата. | ||
| error словарь | при возникновении ошибки | В случае ошибки при обработке содержит информацию об ошибке. Поле структурировано как документ проблемы (RFC7807). | ||
| expires строка | при выдаче даты истечения срока действия сервером | Дата истечения срока действия заказа. Отметка времени должна быть отформатирована в соответствии с RFC3339. Требуется включить только в результат, когда status это pending или valid. | ||
| finalize строка | успех | URL, используемый для завершения заказа ACME. | ||
| identifiers список / элементы=словарь | успех | Список идентификаторов, для которых предназначен этот заказ. | ||
| type строка | успех | Тип идентификатора. dns или ip. | ||
| value строка | успех | Имя идентификатора. Имя хоста или IP-адрес. | ||
| wildcard булево | требуется включить, если идентификатор является подстановочным | Является ли value фактически подстановочным символом. Префикс подстановки *. не включён в value, если это true. | ||
| notAfter строка | когда сервер возвращает это | Запрошенное значение поля notAfter в сертификате.Дата должна быть отформатирована в соответствии с RFC3339. Сервер не обязан вернуть это значение. | ||
| notBefore строка | когда сервер возвращает это | Запрошенное значение поля notBefore в сертификате.Дата должна быть отформатирована в соответствии с RFC3339. Сервер не обязан вернуть это значение. | ||
| status строка | успех | Статус заказа. | ||
Авторы
- 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_info_module.html