community.crypto.get_certificate – Получение сертификата с хоста:порта
Примечание
Этот плагин входит в коллекцию community.crypto (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.crypto.
Для использования в книге задач укажите: community.crypto.get_certificate.
Обзор
- Устанавливает безопасное соединение и возвращает информацию о представленном сертификате
- Модуль может использовать библиотеку cryptography или pyOpenSSL. По умолчанию он пытается определить, какая из них доступна. Это можно переопределить с помощью параметра select_crypto_backend. Обратите внимание, что бэкэнд PyOpenSSL был устаревшим в Ansible 2.9 и будет удален в community.crypto 2.0.0.
- Поддержка SNI только с python >= 2.7
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.7 при использовании
proxy_host - cryptography >= 1.6 или pyOpenSSL >= 0.15
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert путь | Файл PEM, содержащий один или несколько корневых сертификатов; если он присутствует, сертификат будет проверен по этим корневым сертификатам. Обратите внимание, что это только проверяет, подписан ли сертификат по цепочке; а не то, что сертификат действителен для хоста, который его предоставляет. | |
| host строка / обязательно | Хост, для которого требуется сертификат (IP-адрес допустим) | |
| port целое число / обязательно | Порт для подключения | |
| proxy_host строка | Прокси-хост, используемый при получении сертификата. | |
| proxy_port целое число | По умолчанию: 8080 | Прокси-порт, используемый при получении сертификата. |
| select_crypto_backend строка |
| Определяет, какой криптографический бэкэнд использовать. По умолчанию выбрано auto, которое пытается использовать cryptography , если оно доступно, и переходит к pyopenssl. Если установлено значение pyopenssl, будет пытаться использовать библиотеку pyOpenSSL.Если установлено значение cryptography, будет пытаться использовать библиотеку cryptography. |
| timeout целое число | По умолчанию: 10 | Таймаут в секундах |
Примечания
Примечание
- При использовании ca_cert в OS X было отмечено, что в некоторых условиях проверка всегда завершается успешно.
Примеры
- name: Get the cert from an RDP port
community.crypto.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
community.crypto.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 словарь | успех | Информация о субъекте сертификата (отделение, общее имя и т.д.) | |
| version строка | успех | Номер версии сертификата | |
Авторы
- 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.10/collections/community/crypto/get_certificate_module.html