Модуль community.crypto.get_certificate — получение сертификата с узла:порт
Примечание
Этот модуль входит в коллекцию community.crypto (версия 3.2.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.crypto. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.crypto.get_certificate.
Краткое описание
- Устанавливает защищённое соединение и возвращает сведения о предоставленном сертификате.
- Модуль использует библиотеку Python cryptography.
Требования
Перечисленные ниже компоненты должны быть установлены на узле, на котором выполняется модуль.
- Python >= 3.10, если
get_certificate_chain=true - cryptography >= 3.3
Параметры
Параметр | Комментарии |
|---|---|
asn1_base64 boolean добавлено в community.crypto 2.12.0 | Следует ли кодировать значения ASN.1 в возвращаемом значении В документации долгое время утверждалось, что значения кодируются в Base64, однако на самом деле этого никогда не происходило. Для совместимости этому параметру задано значение В community.crypto 3.0.0 значение по умолчанию изменено с Варианты:
|
ca_cert path | PEM-файл, содержащий один или несколько корневых сертификатов; если он указан, сертификат будет проверен с помощью этих корневых сертификатов. Обратите внимание: проверяется только то, что сертификат подписан цепочкой, но не то, что сертификат действителен для узла, который его предоставляет. |
ciphers list / elements=string добавлено в community.crypto 2.11.0 | Шифры SSL/TLS, используемые для запроса. Если задан список, все шифры объединяются по порядку с помощью Подробнее см. в разделе Формат списка шифров OpenSSL. Доступные шифры зависят от версий Python и OpenSSL/LibreSSL. |
get_certificate_chain boolean добавлено в community.crypto 2.21.0 | Если задано значение Цепочку, возвращённую сервером, можно найти в Примечание. Для этого требуется Python 3.10 или новее. Также обратите внимание, что официальная поддержка этой возможности есть только в Python 3.13 или новее. Для достижения того же результата модуль использует внутренние API Python 3.10, 3.11 и 3.12. Будущие версии Python 3.10, 3.11 или 3.12 могут нарушить эту работу. Варианты:
|
host string / обязательный | Узел, сертификат которого нужно получить (можно указать IP-адрес). |
port integer / обязательный | Порт для подключения. |
proxy_host string | Узел прокси-сервера, используемого при получении сертификата. |
proxy_port integer | Порт прокси-сервера, используемого при получении сертификата. По умолчанию: |
select_crypto_backend string | Определяет, какую криптографическую серверную часть использовать. По умолчанию выбрано значение Если задано значение Обратите внимание: в community.crypto 3.0.0 все значения работают одинаково. В более поздней версии этот параметр будет объявлен устаревшим. Рекомендуем не задавать его явно. Варианты:
|
server_name string добавлено в community.crypto 1.4.0 | Имя сервера, используемое для SNI (индикация имени сервера), если имя узла является IP-адресом или отличается от имени сервера. |
starttls string добавлено в community.crypto 1.9.0 | Запрашивает защищённое соединение для протоколов, в которых клиент должен инициировать шифрование. В настоящее время доступно только для Варианты:
|
timeout integer | Время ожидания в секундах. По умолчанию: |
tls_ctx_options list / elements=any добавлено в community.crypto 2.21.0 | Параметры контекста TLS (флаги TLS/SSL OP), используемые для запроса. Подробнее см. в списке флагов SSL OP. Доступные параметры контекста TLS зависят от версий Python и OpenSSL/LibreSSL. |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: нет Это действие не изменяет состояние. | Может выполняться в режиме |
diff_mode | Поддержка: не применимо Это действие не изменяет состояние. | В режиме diff будут возвращены сведения об изменениях (или возможных изменениях в |
idempotent | Поддержка: полная Это действие не изменяет состояние. | При повторном запуске с теми же аргументами вне режима проверки модуль сообщает, что изменений нет. Это предполагает, что контролируемая/запрашиваемая модулем система не изменилась значимым образом. |
Примечания
Примечание
- Сообщалось, что при использовании ca_cert в OS X проверка в некоторых условиях всегда завершается успешно.
См. также
См. также
- Фильтр-плагин community.crypto.to_serial
-
Преобразует целое число в список шестнадцатеричных чисел, разделённых двоеточиями.
Примеры
---
- 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
ansible.builtin.debug:
msg: "cert expires in: {{ expire_days }} days."
vars:
expire_days: >-
{{ (
(cert.not_after | ansible.builtin.to_datetime('%Y%m%d%H%M%SZ')) -
(ansible_date_time.iso8601 | ansible.builtin.to_datetime('%Y-%m-%dT%H:%M:%SZ'))
).days }}
- name: Allow legacy insecure renegotiation to get a cert from a legacy device
community.crypto.get_certificate:
host: "legacy-device.domain.com"
port: 443
ciphers:
- HIGH
tls_ctx_options:
- OP_ALL
- OP_NO_SSLv3
- OP_CIPHER_SERVER_PREFERENCE
- OP_ENABLE_MIDDLEBOX_COMPAT
- OP_NO_COMPRESSION
- 4 # OP_LEGACY_SERVER_CONNECT
delegate_to: localhost
run_once: true
register: legacy_cert
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, относящиеся только к этому модулю:
Ключ | Описание |
|---|---|
cert string | Сертификат, полученный с порта. Возвращается: при успехе |
expired boolean | Логическое значение, указывающее, истёк ли срок действия сертификата. Возвращается: при успехе |
extensions list / elements=dictionary | Расширения, применённые к сертификату. Возвращается: при успехе |
|
asn1_data string |
Содержимое расширения в формате ASN.1. Если Обратите внимание: исходное двоичное значение может не сохраниться при сериализации JSON для передачи контроллеру Ansible, а также может вызвать сбои при отображении. Подробнее см. в https://github.com/ansible/ansible/issues/80258. Примечание. В зависимости от используемой версии Возвращается: при успехе |
|
critical boolean |
Является ли расширение критическим. Возвращается: при успехе |
|
name string |
Имя расширения. Возвращается: при успехе |
issuer dictionary | Сведения об издателе сертификата. Возвращается: при успехе |
not_after string | Дата истечения срока действия сертификата. Возвращается: при успехе |
not_before string | Дата выдачи сертификата. Возвращается: при успехе |
serial_number integer | Серийный номер сертификата. Это возвращаемое значение имеет тип integer. Если серийный номер требуется в виде шестнадцатеричной строки с разделителями-двоеточиями, например Возвращается: при успехе |
signature_algorithm string | Алгоритм, использованный для подписи сертификата. Возвращается: при успехе |
subject dictionary | Сведения о субъекте сертификата ( Возвращается: при успехе |
unverified_chain list / elements=string добавлено в community.crypto 2.21.0 | Цепочка сертификатов, полученная с порта. Первым элементом всегда является Возвращается: при успехе и |
verified_chain list / elements=string добавлено в community.crypto 2.21.0 | Проверенная цепочка сертификатов, полученная с порта. Первым элементом всегда является Последний сертификат — корневой сертификат, к которому ведёт цепочка. Если указан Обратите внимание: Возвращается: при успехе и |
version string | Номер версии сертификата. Возвращается: при успехе |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/crypto/get_certificate_module.html