Модуль community.crypto.get_certificate – Получение сертификата с хоста:порт
Примечание
Этот модуль является частью коллекции community.crypto (версия 2.22.1).
Эта коллекция может быть уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.crypto. Для использования этого модуля необходимы дополнительные требования, см. Требования для подробностей.
Для использования в плейбуке укажите: community.crypto.get_certificate.
Описание
- Устанавливает защищенное соединение и возвращает информацию о представленном сертификате.
- Модуль использует библиотеку cryptography для Python.
- Поддержка SNI (Server Name Indication) доступна только с Python 2.7 и новее.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- Python >= 2.7 при использовании
proxy_host, и Python >= 3.10 приget_certificate_chain=true - cryptography >= 1.6
Параметры
Параметр | Комментарии |
|---|---|
asn1_base64 boolean добавлен в community.crypto 2.12.0 | Указывает, нужно ли кодировать значения ASN.1 в значении возврата В документации долгое время утверждалось, что значения закодированы в Base64, но это никогда не было так. Для совместимости этот параметр установлен в Значение по умолчанию Варианты:
|
ca_cert path | Файл PEM, содержащий один или несколько корневых сертификатов; если он присутствует, сертификат будет проверен по этим корневым сертификатам. Обратите внимание, что это только проверяет, подписан ли сертификат цепочкой; не то, что сертификат действителен для узла, его предъявляющего. |
ciphers список / элементы=строка добавлен в 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 строка / обязательно | Хост, для которого нужно получить сертификат (IP-адрес тоже подойдет). |
port целое число / обязательно | Порт для подключения. |
proxy_host строка | Хост прокси, используемый при получении сертификата. |
proxy_port целое число | Порт прокси, используемый при получении сертификата. По умолчанию: |
select_crypto_backend строка | Определяет, какой криптографический бэкенд использовать. По умолчанию используется Если установлено Варианты:
|
server_name строка добавлен в community.crypto 1.4.0 | Имя сервера, используемое для SNI (Server Name Indication), когда имя хоста является IP-адресом или отличается от имени сервера. |
starttls строка добавлен в community.crypto 1.9.0 | Запрашивает безопасное соединение для протоколов, которые требуют от клиентов инициировать шифрование. В настоящее время доступно только для Варианты:
|
timeout целое число | Таймаут в секундах. По умолчанию: |
tls_ctx_options список / элементы=любое добавлен в community.crypto 2.21.0 | Параметры контекста TLS (флаги OP TLS/SSL) для использования в запросе. Для получения дополнительной информации см. Список флагов SSL OP. Доступные параметры контекста TLS зависят от версий Python и OpenSSL/LibreSSL. |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: нет Это действие не изменяет состояние. | Может работать в |
diff_mode | Поддержка: нет Это действие не изменяет состояние. | Вернёт детали изменений (или, возможно, требующих изменений в |
Примечания
Примечание
- При использовании 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 строка | Сертификат, полученный с порта. Возвращено: успех |
expired логическое | Логическое значение, указывающее, истек ли срок действия сертификата. Возвращено: успех |
extensions список / элементы=словарь | Расширения, применённые к сертификату. Возвращено: успех |
|
asn1_data строка |
Содержимое ASN.1 расширения. Если Обратите внимание, что исходное двоичное значение может не сохраниться при сериализации в формате JSON на контроллер Ansible, а также может вызвать сбои при его отображении. См. https://github.com/ansible/ansible/issues/80258 для получения дополнительной информации. Примечание: в зависимости от Возвращено: успех |
|
critical логическое |
Является ли расширение критическим. Возвращено: успех |
|
name строка |
Имя расширения. Возвращено: успех |
issuer словарь | Информация об издателе сертификата. Возвращено: успех |
not_after строка | Дата истечения срока действия сертификата. Возвращено: успех |
not_before строка | Дата выдачи сертификата. Возвращено: успех |
serial_number целое число | Серийный номер сертификата. Это значение возврата является целым числом. Если вам нужны серийные номера в виде разделенных двоеточием шестнадцатеричных строк, таких как Возвращено: успех |
signature_algorithm строка | Алгоритм, используемый для подписи сертификата. Возвращено: успех |
subject словарь | Информация о субъекте сертификата ( Возвращено: успех |
unverified_chain список / элементы=строка добавлено в community.crypto 2.21.0 | Цепочка сертификатов, полученная с порта. Первый элемент всегда Возвращено: успех и |
verified_chain список / элементы=строка добавлено в community.crypto 2.21.0 | Проверенная цепочка сертификатов, полученная с порта. Первый элемент всегда Последний сертификат — корневой сертификат, к которому прослеживается цепочка. Если Обратите внимание, что Возвращено: успех и |
version строка | Номер версии сертификата. Возвращено: успех |
Ссылки на сборку
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/crypto/get_certificate_module.html