community.crypto.get_certificate – Получение сертификата с хоста:порт
Примечание
Этот плагин входит в коллекцию community.crypto (версия 1.4.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 (Server Name Indication) только с 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. |
| server_name строка добавлено в 1.4.0 community.crypto | Имя сервера, используемое для SNI (Server Name Indication), когда имя хоста — IP-адрес или отличается от имени сервера. | |
| 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 строка | успешно | Базовое64-кодированное содержимое ASN.1 расширения. | |
| critical булево | успешно | Является ли расширение критическим. | |
| name строка | успешно | Имя расширения. | |
| issuer словарь | успешно | Информация об издателе сертификата | |
| not_after строка | успешно | Дата истечения срока действия сертификата | |
| not_before строка | успешно | Дата выдачи сертификата | |
| serial_number строка | успешно | Серийный номер сертификата | |
| signature_algorithm строка | успешно | Алгоритм, используемый для подписи сертификата | |
| subject словарь | успешно | Информация о субъекте сертификата (OU, CN и т.д.) | |
| version строка | успешно | Номер версии сертификата | |
Авторы
- John Westcott IV (@john-westcott-iv)
© 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/get_certificate_module.html