Spec-Zone.ru › Ansible

Модуль community.crypto.x509_certificate_info — предоставление сведений о сертификатах OpenSSL X.509

Примечание

Этот модуль входит в коллекцию community.crypto (версия 3.2.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить коллекцию, используйте: ansible-galaxy collection install community.crypto. Для использования этого модуля требуются дополнительные зависимости; подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: community.crypto.x509_certificate_info.

  • Краткое описание
  • Требования
  • Параметры
  • Атрибуты
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Этот модуль позволяет получать сведения о сертификатах OpenSSL.
  • Для взаимодействия с OpenSSL используется библиотека Python cryptography.
  • До версии 2.9 этот модуль назывался openssl_certificate_info, когда он входил непосредственно в Ansible. После переноса в коллекцию community.crypto его переименовали в community.crypto.x509_certificate_info. Начиная с Ansible 2.10 его по-прежнему можно использовать под прежним коротким именем (или под именем ansible.builtin.openssl_certificate_info), которое перенаправляет на community.crypto.x509_certificate_info. При использовании полных имён коллекций (FQCN) или ключевого слова collections следует использовать новое имя community.crypto.x509_certificate_info, чтобы избежать предупреждения об устаревании.

Требования

Следующие требования должны быть выполнены на узле, где выполняется этот модуль.

  • Если для name_encoding задано значение, отличное от ignore, необходимо установить библиотеку Python idna.
  • cryptography >= 3.3

Параметры

Параметр

Комментарии

content

string

добавлено в community.crypto 1.0.0

Содержимое сертификата X.509 в формате PEM.

Необходимо указать либо path, либо content, но не оба параметра одновременно.

name_encoding

string

Способ кодирования имён (DNS-имён, URI, адресов электронной почты) в возвращаемых значениях.

ignore использует кодировку, возвращаемую серверной частью.

idna преобразует все метки доменных имён в кодировку IDNA. Приоритет отдаётся IDNA2008; если кодирование IDNA2008 завершится ошибкой, будет использоваться IDNA2003.

unicode преобразует все метки доменных имён в Unicode. Приоритет отдаётся IDNA2008; если декодирование IDNA2008 завершится ошибкой, будет использоваться IDNA2003.

Примечание. Для idna и unicode требуется установленная библиотека Python idna.

Варианты:

  • "ignore" ← (по умолчанию)
  • "idna"
  • "unicode"

path

path

Абсолютный путь на удалённом узле, откуда загружается файл сертификата.

Необходимо указать либо path, либо content, но не оба параметра одновременно.

Поддерживаются форматы PEM и DER.

select_crypto_backend

string

Определяет, какую криптографическую серверную часть использовать.

По умолчанию используется auto, который пытается задействовать cryptography, если он доступен.

Если задано значение cryptography, модуль попытается использовать библиотеку cryptography.

Обратите внимание: в community.crypto 3.0.0 все значения работают одинаково. В более поздней версии этот параметр будет объявлен устаревшим. Рекомендуем не задавать его явно.

Варианты:

  • "auto" ← (по умолчанию)
  • "cryptography"

valid_at

dictionary

Словарь, сопоставляющий имена со спецификациями времени. Для каждого указанного времени будет проверено, действителен ли сертификат в этот момент. Сведения о результате см. в возвращаемом значении valid_at.

Время можно задать как относительное значение или абсолютную метку времени.

Время всегда интерпретируется как UTC.

Допустимый формат: [+-]timespec | ASN.1 TIME, где timespec может быть целым числом + [w | d | h | m | s] (например, +32w1d2h) или значением ASN.1 TIME (то есть соответствовать шаблону YYYYMMDDHHMMSSZ). Обратите внимание, что все метки времени считаются заданными в UTC.

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Это действие не изменяет состояние.

Может выполняться в режиме check_mode и возвращать прогноз изменения статуса, не изменяя целевой объект.

diff_mode

Поддержка: Н/Д

Это действие не изменяет состояние.

В режиме diff будут возвращены сведения о том, что изменилось (или, возможно, должно измениться в check_mode).

idempotent

Поддержка: полная

Это действие не изменяет состояние.

При повторном запуске с теми же аргументами вне режима проверки второе выполнение сообщает об отсутствии изменений.

Предполагается, что система, которой управляет модуль или к которой он обращается, не изменилась существенным образом.

Примечания

Примечание

  • Все значения меток времени представлены в формате ASN.1 TIME, то есть соответствуют шаблону YYYYMMDDHHMMSSZ. Все они заданы в UTC.

См. также

См. также

community.crypto.x509_certificate

Создание и/или проверка сертификатов OpenSSL.

community.crypto.x509_certificate_pipe

Создание и/или проверка сертификатов OpenSSL.

community.crypto.x509_certificate_info — плагин фильтра

Вариант этого модуля в виде фильтра.

community.crypto.to_serial — плагин фильтра

Преобразование целого числа в список шестнадцатеричных чисел, разделённых двоеточиями.

Примеры

---
- name: Generate a Self Signed OpenSSL certificate
  community.crypto.x509_certificate:
    path: /etc/ssl/crt/ansible.com.crt
    privatekey_path: /etc/ssl/private/ansible.com.pem
    csr_path: /etc/ssl/csr/ansible.com.csr
    provider: selfsigned


# Get information on the certificate

- name: Get information on generated certificate
  community.crypto.x509_certificate_info:
    path: /etc/ssl/crt/ansible.com.crt
  register: result

- name: Dump information
  ansible.builtin.debug:
    var: result


# Check whether the certificate is valid or not valid at certain times, fail
# if this is not the case. The first task (x509_certificate_info) collects
# the information, and the second task (assert) validates the result and
# makes the playbook fail in case something is not as expected.

- name: Test whether that certificate is valid tomorrow and/or in three weeks
  community.crypto.x509_certificate_info:
    path: /etc/ssl/crt/ansible.com.crt
    valid_at:
      point_1: "+1d"
      point_2: "+3w"
  register: result

- name: Validate that certificate is valid tomorrow, but not in three weeks
  ansible.builtin.assert:
    that:
      - result.valid_at.point_1    # valid in one day
      - not result.valid_at.point_2 # not valid in three weeks

Возвращаемые значения

Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:

Ключ

Описание

authority_cert_issuer

list / elements=string

Издатель сертификата центра сертификации в виде списка общих имен.

Имеет значение none, если расширение AuthorityKeyIdentifier отсутствует.

См. name_encoding, чтобы узнать, как обрабатываются IDN.

Возвращается: при успехе

Пример: ["DNS:www.ansible.com", "IP:1.2.3.4"]

authority_cert_serial_number

integer

Серийный номер сертификата центра сертификации.

Имеет значение none, если расширение AuthorityKeyIdentifier отсутствует.

Это возвращаемое значение имеет тип integer. Если вам нужны серийные номера в виде шестнадцатеричной строки с разделителями-двухточиями, например 11:22:33, преобразуйте значение в этот формат с помощью community.crypto.to_serial.

Возвращается: при успехе

Пример: 12345

authority_key_identifier

string

Идентификатор ключа центра сертификации в сертификате.

Идентификатор возвращается в шестнадцатеричном формате; для разделения байтов используется :.

Имеет значение none, если расширение AuthorityKeyIdentifier отсутствует.

Возвращается: при успехе

Пример: "00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:00:11:22:33"

basic_constraints

list / elements=string

Записи расширения basic_constraints или none, если расширение отсутствует.

Возвращается: при успехе

Пример: ["CA:TRUE", "pathlen:1"]

basic_constraints_critical

boolean

Является ли расширение basic_constraints критическим.

Возвращается: при успехе

expired

boolean

Истек ли срок действия сертификата (то есть находится ли notAfter в прошлом).

Возвращается: при успехе

extended_key_usage

list / elements=string

Записи расширения extended_key_usage или none, если расширение отсутствует.

Возвращается: при успехе

Пример: ["Biometric Info", "DVCS", "Time Stamping"]

extended_key_usage_critical

boolean

Является ли расширение extended_key_usage критическим.

Возвращается: при успехе

extensions_by_oid

dictionary

Возвращает словарь для каждого OID расширения.

Возвращается: при успехе

Пример: {"1.3.6.1.5.5.7.1.24": {"critical": false, "value": "MAMCAQU="}}

critical

boolean

Является ли расширение критическим.

Возвращается: при успехе

value

string

Значение расширения в кодировке Base64 (в формате DER).

Примечание. В зависимости от используемой версии cryptography извлечь содержимое ASN.1 расширения может быть невозможно; вместо этого можно предоставить перекодированное содержимое расширения, если оно было разобрано с помощью cryptography. Обычно это должно приводить к точно такому же значению, за исключением случаев, когда исходное значение расширения было некорректным.

Возвращается: при успехе

Пример: "MAMCAQU="

fingerprints

dictionary

добавлено в community.crypto 1.2.0

Отпечатки DER-кодированного представления всего сертификата.

Отпечаток вычисляется для каждого доступного алгоритма хеширования.

Возвращается: при успехе

Пример: "{'sha256': 'd4:b3:aa:6d:c8:04:ce:4e:ba:f6:29:4d:92:a3:94:b0:c2:ff:bd:bf:33:63:11:43:34:0f:51:b0:95:09:2f:63', 'sha512': 'f7:07:4a:f0:b0:f0:e6:8b:95:5f:f9:e6:61:0a:32:68:f1..."

issuer

dictionary

Издатель сертификата.

Обратите внимание: если значение повторяется, будет возвращено только последнее.

Возвращается: при успехе

Пример: {"commonName": "ca.example.com", "organizationName": "Ansible"}

issuer_ordered

list / elements=list

Издатель сертификата в виде упорядоченного списка кортежей.

Возвращается: при успехе

Пример: [["organizationName", "Ansible"], [{"commonName": "ca.example.com"}]]

issuer_uri

string

добавлено в community.crypto 2.9.0

URI издателя, если он указан в сертификате. Если URI издателя не указан, будет возвращено none.

Возвращается: при успехе

key_usage

string

Записи расширения key_usage или none, если расширение отсутствует.

Возвращается: при успехе

Пример: "['Key Agreement', 'Data Encipherment']"

key_usage_critical

boolean

Является ли расширение key_usage критическим.

Возвращается: при успехе

not_after

string

Дата notAfter в формате ASN.1 TIME.

Возвращается: при успехе

Пример: "20190413202428Z"

not_before

string

Дата notBefore в формате ASN.1 TIME.

Возвращается: при успехе

Пример: "20190331202428Z"

ocsp_must_staple

boolean

true, если расширение OCSP Must Staple присутствует, в противном случае none.

Возвращается: при успехе

ocsp_must_staple_critical

boolean

Является ли расширение ocsp_must_staple критическим.

Возвращается: при успехе

ocsp_uri

string

URI ответчика OCSP, если он указан в сертификате. Если URI ответчика OCSP не указан, будет возвращено none.

Возвращается: при успехе

public_key

string

Открытый ключ сертификата в формате PEM.

Возвращается: при успехе

Пример: "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A..."

public_key_data

dictionary

добавлено в community.crypto 1.7.0

Данные открытого ключа. Зависит от типа открытого ключа.

Возвращается: при успехе

curve

string

Название кривой для ECC.

Возвращается: когда public_key_type=ECC

exponent

integer

Открытый показатель степени ключа RSA.

Возвращается: когда public_key_type=RSA

exponent_size

integer

Максимальное количество битов закрытого ключа. По сути, это размер в битах используемой подгруппы.

Возвращается: когда public_key_type=ECC

g

integer

Значение g для DSA.

Это элемент, порождающий подгруппу мультипликативной группы используемого простого поля.

Возвращается: когда public_key_type=DSA

modulus

integer

Модуль ключа RSA.

Возвращается: когда public_key_type=RSA

p

integer

Значение p для DSA.

Это простой модуль, по которому выполняются арифметические операции.

Возвращается: когда public_key_type=DSA

q

integer

Значение q для DSA.

Это простое число, которое делит p - 1 и одновременно является порядком подгруппы мультипликативной группы используемого простого поля.

Возвращается: когда public_key_type=DSA

size

integer

Размер модуля (RSA) или простого числа (DSA) в битах.

Возвращается: когда public_key_type=RSA или public_key_type=DSA

x

integer

Координата x открытой точки на эллиптической кривой.

Возвращается: когда public_key_type=ECC

y

integer

Для public_key_type=ECC это координата y открытой точки на эллиптической кривой.

Для public_key_type=DSA это общедоступный элемент группы, дискретный логарифм которого по основанию g является закрытым ключом.

Возвращается: когда public_key_type=DSA или public_key_type=ECC

public_key_fingerprints

dictionary

Отпечатки открытого ключа сертификата.

Отпечаток вычисляется для каждого доступного алгоритма хеширования.

Возвращается: при успехе

Пример: "{'sha256': 'd4:b3:aa:6d:c8:04:ce:4e:ba:f6:29:4d:92:a3:94:b0:c2:ff:bd:bf:33:63:11:43:34:0f:51:b0:95:09:2f:63', 'sha512': 'f7:07:4a:f0:b0:f0:e6:8b:95:5f:f9:e6:61:0a:32:68:f1..."

public_key_type

string

добавлено в community.crypto 1.7.0

Тип открытого ключа сертификата.

Одно из значений: RSA, DSA, ECC, Ed25519, X25519, Ed448 или X448.

Если тип ключа определить не удается, значение будет начинаться с unknown.

Возвращается: при успехе

Пример: "RSA"

serial_number

integer

Серийный номер сертификата.

Это возвращаемое значение имеет тип integer. Если вам нужны серийные номера в виде шестнадцатеричной строки с разделителями-двухточиями, например 11:22:33, преобразуйте значение в этот формат с помощью community.crypto.to_serial.

Возвращается: при успехе

Пример: 1234

signature_algorithm

string

Алгоритм подписи, использованный для подписания сертификата.

Возвращается: при успехе

Пример: "sha256WithRSAEncryption"

subject

dictionary

Субъект сертификата в виде словаря.

Обратите внимание: если значение повторяется, будет возвращено только последнее.

Возвращается: при успехе

Пример: {"commonName": "www.example.com", "emailAddress": "test@example.com"}

subject_alt_name

list / elements=string

Записи расширения subject_alt_name или none, если расширение отсутствует.

См. name_encoding, чтобы узнать, как обрабатываются IDN.

Возвращается: при успехе

Пример: ["DNS:www.ansible.com", "IP:1.2.3.4"]

subject_alt_name_critical

boolean

Является ли расширение subject_alt_name критическим.

Возвращается: при успехе

subject_key_identifier

string

Идентификатор ключа субъекта сертификата.

Идентификатор возвращается в шестнадцатеричном формате; для разделения байтов используется :.

Имеет значение none, если расширение SubjectKeyIdentifier отсутствует.

Возвращается: при успехе

Пример: "00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:00:11:22:33"

subject_ordered

list / elements=list

Субъект сертификата в виде упорядоченного списка кортежей.

Возвращается: при успехе

Пример: [["commonName", "www.example.com"], [{"emailAddress": "test@example.com"}]]

valid_at

dictionary

Для каждой отметки времени, указанной в параметре valid_at, возвращается логическое значение, указывающее, действителен ли сертификат в этот момент времени.

Возвращается: при успехе

version

integer

Версия сертификата.

Возвращается: при успехе

Пример: 3

Авторы

  • Felix Fontein (@felixfontein)
  • Yanis Guenane (@Spredzy)
  • Markus Teufelberger (@MarkusTeufelberger)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Задать вопрос (crypto)
  • Задать вопрос (ACME)
  • Сообщить об ошибке
  • Предложить новую функцию
  • Общение

© 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/x509_certificate_info_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API