community.crypto.acme_account_info – Получение информации об учётных записях ACME
Примечание
Этот плагин является частью коллекции community.crypto (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.crypto.
Для использования в плейбуке укажите: 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, а для 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 для классических конечных точек ACME Let’s Encrypt и Buypass или 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 логическое значение |
| Должны ли вызовы каталога ACME проверять сертификаты TLS. *Предупреждение:* должно быть установлено только в no в тестовых целях, например, при тестировании на локальном сервере Pebble. |
Примечания
Примечание
- Модуль community.crypto.acme_account позволяет изменять, создавать и удалять учётные записи ACME.
- Этот модуль назывался
acme_account_factsдо Ansible 2.8. Способ использования не изменился. - Если доступна достаточно новая версия библиотеки
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
debug: var=account_data.account_uri
- name: Print account contacts
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
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–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_info_module.html