get_certificate – Получение сертификата с хоста:порт
Новое в версии 2.8.
Описание
- Устанавливает защищённое соединение и возвращает информацию о представленном сертификате
- Модуль может использовать библиотеку cryptography Python или библиотеку pyOpenSSL Python. По умолчанию, он пытается определить, какая из них доступна. Это можно переопределить с помощью параметра select_crypto_backend. Обратите внимание, что бэкэнд PyOpenSSL был устаревшим в Ansible 2.9 и будет удален в Ansible 2.13.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.7 при использовании
proxy_host - cryptography >= 1.6 или pyOpenSSL >= 0.15
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert путь | Файл PEM, содержащий один или несколько корневых сертификатов; если присутствует, сертификат будет проверен по этим корневым сертификатам. Обратите внимание, что это только проверяет, подписан ли сертификат по цепочке; не то, что сертификат действителен для хоста, который его представляет. | |
| host строка / обязательно | Хост, для которого требуется получить сертификат (IP-адрес подходит). | |
| port целое число / обязательно | Порт для подключения. | |
| proxy_host строка добавлено в 2.9 | Хост прокси, используемый при получении сертификата. | |
| proxy_port целое число добавлено в 2.9 | Значение по умолчанию: 8080 | Порт прокси, используемый при получении сертификата. |
| select_crypto_backend строка добавлено в 2.9 |
| Определяет, какой криптографический бэкэнд использовать. Значение по умолчанию — auto, которое пытается использовать cryptography при его наличии, в противном случае используется pyopenssl. Если установлено pyopenssl, будет использоваться библиотека pyOpenSSL.Если установлено cryptography, будет использоваться библиотека cryptography. |
| timeout целое число | Значение по умолчанию: 10 | Таймаут в секундах. |
Примечания
Примечание
- При использовании ca_cert в OS X сообщается, что в некоторых условиях проверка всегда будет успешной.
Примеры
- name: Get the cert from an RDP port
get_certificate:
host: "1.2.3.4"
port: 3389
delegate_to: localhost
run_once: true
register: cert
- name: Get a cert from an https port
get_certificate:
host: "www.google.com"
port: 443
delegate_to: localhost
run_once: true
register: cert
- name: How many days until cert expires
debug:
msg: "cert expires in: {{ expire_days }} days."
vars:
expire_days: "{{ (( cert.not_after | to_datetime('%Y%m%d%H%M%SZ')) - (ansible_date_time.iso8601 | to_datetime('%Y-%m-%dT%H:%M:%SZ')) ).days }}"
Значения возврата
Общие значения возврата описаны в документации, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| cert строка | успех | Полученный с порта сертификат | |
| expired логическое значение | успех | Логическое значение, указывающее, истек ли сертификат | |
| extensions список / элементы=словарь | успех | Расширения, применённые к сертификату | |
| asn1_data строка | успех | Содержимое ASN.1 сертификата в формате Base64. | |
| critical логическое значение | успех | Является ли расширение критичным. | |
| name строка | успех | Имя расширения. | |
| issuer словарь | успех | Информация об издателе сертификата | |
| not_after строка | успех | Дата истечения сертификата | |
| not_before строка | успех | Дата выдачи сертификата | |
| serial_number строка | успех | Серийный номер сертификата | |
| signature_algorithm строка | успех | Алгоритм, используемый для подписи сертификата | |
| subject словарь | успех | Информация о субъекте сертификата (OU, CN и т.д.) | |
| version строка | успех | Номер версии сертификата | |
Статус
- Интерфейс этого модуля не гарантирует обратной совместимости. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- John Westcott IV (@john-westcott-iv)
Подсказка
Если вы обнаружите какие-либо проблемы в этом документе, вы можете изменить этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/get_certificate_module.html