Spec-Zone.ru › Ansible

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

Примечание

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

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

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

Для использования в книге задач укажите: community.crypto.x509_certificate_info.

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

Обзор

  • Этот модуль позволяет запросить информацию о сертификатах OpenSSL.
  • Он использует библиотеку cryptography Python для взаимодействия с OpenSSL.
  • Обратите внимание, что этот модуль назывался openssl_certificate_info при непосредственном включении в Ansible до версии 2.9. При перемещении в коллекцию 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, требуется установка библиотеки idna Python.
  • cryptography >= 1.6

Параметры

Параметр

Комментарии

content

string

added in community.crypto 1.0.0

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

Должен быть указан либо path, либо content, но не оба одновременно.

name_encoding

string

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

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

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

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

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

Варианты:

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

path

path

Путь к файлу сертификата на удалённом хосте.

Должен быть указан либо path, либо content, но не оба одновременно.

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

select_crypto_backend

string

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

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

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

Варианты:

  • "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).

Примечания

Примечание

  • Все значения метки времени представлены в формате 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

список / элементы=строка

Издатель сертификата-уполномоченного органа в виде списка общих имён.

Будет none если расширение AuthorityKeyIdentifier отсутствует.

См. name_encoding для обработки IDN.

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

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

authority_cert_serial_number

целое число

Серийный номер сертификата-уполномоченного органа.

Будет none если расширение AuthorityKeyIdentifier отсутствует.

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

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

Пример: 12345

authority_key_identifier

строка

Идентификатор ключа уполномоченного органа.

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

Будет none если расширение AuthorityKeyIdentifier отсутствует.

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

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

basic_constraints

список / элементы=строка

Элементы в расширении basic_constraints, или none если расширение отсутствует.

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

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

basic_constraints_critical

логическое значение

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

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

expired

логическое значение

Истек ли сертификат (другими словами, notAfter в прошлом).

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

extended_key_usage

список / элементы=строка

Элементы в расширении extended_key_usage, или none если расширение отсутствует.

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

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

extended_key_usage_critical

логическое значение

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

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

extensions_by_oid

словарь

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

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

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

critical

логическое значение

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

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

value

строка

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

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

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

Пример: "MAMCAQU="

fingerprints

словарь

добавлено в 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

словарь

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

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

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

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

issuer_ordered

список / элементы=список

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

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

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

issuer_uri

строка

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

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

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

END_OF_DOCUMENT_MARKER

key_usage

строка

Элементы расширения key_usage, или none, если расширение отсутствует.

Возвращаемое значение: успех

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

key_usage_critical

логическое значение

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

Возвращаемое значение: успех

not_after

строка

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

Возвращаемое значение: успех

Пример: "20190413202428Z"

not_before

строка

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

Возвращаемое значение: успех

Пример: "20190331202428Z"

ocsp_must_staple

логическое значение

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

Возвращаемое значение: успех

ocsp_must_staple_critical

логическое значение

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

Возвращаемое значение: успех

ocsp_uri

строка

URI OCSP респондента, если включён в сертификат. Будет none, если URI OCSP респондента не включен.

Возвращаемое значение: успех

public_key

строка

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

Возвращаемое значение: успех

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

public_key_data

словарь

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

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

Возвращаемое значение: успех

curve

строка

Имя кривой для ECC.

Возвращаемое значение: при public_key_type=ECC

exponent

целое число

Показатель открытого ключа RSA.

Возвращаемое значение: при public_key_type=RSA

exponent_size

целое число

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

Возвращаемое значение: при public_key_type=ECC

g

целое число

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

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

Возвращаемое значение: при public_key_type=DSA

modulus

целое число

Модуль открытого ключа RSA.

Возвращаемое значение: при public_key_type=RSA

p

целое число

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

Это простая база модулей, на которой выполняется арифметика.

Возвращаемое значение: при public_key_type=DSA

q

целое число

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

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

Возвращаемое значение: при public_key_type=DSA

size

целое число

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

Возвращаемое значение: при public_key_type=RSA или public_key_type=DSA

x

целое число

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

Возвращаемое значение: при public_key_type=ECC

y

целое число

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

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

Возвращаемое значение: при public_key_type=DSA или public_key_type=ECC

public_key_fingerprints

словарь

Отпечатки цифровых подписей открытого ключа сертификата.

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

Возвращается: успешно

Пример: "{'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

строка

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

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

Один из RSA, DSA, ECC, Ed25519, X25519, Ed448, или X448.

Начнётся с unknown если тип ключа не может быть определён.

Возвращается: успешно

Пример: "RSA"

serial_number

целое число

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

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

Возвращается: успешно

Пример: 1234

signature_algorithm

строка

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

Возвращается: успешно

Пример: "sha256WithRSAEncryption"

subject

словарь

Подпись сертификата в виде словаря.

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

Возвращается: успешно

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

subject_alt_name

список / элементы=строка

Элементы расширения subject_alt_name, или none, если расширение отсутствует.

См. name_encoding, как обрабатываются IDN.

Возвращается: успешно

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

subject_alt_name_critical

булево

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

Возвращается: успешно

subject_key_identifier

строка

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

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

Возвращает none, если расширение SubjectKeyIdentifier отсутствует.

Возвращается: успешно

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

subject_ordered

список / элементы=список

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

Возвращается: успешно

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

valid_at

словарь

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

Возвращается: успешно

version

целое число

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

Возвращается: успешно

Пример: 3

Авторы

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

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

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

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

Spec-Zone.ru

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