Spec-Zone.ru › Ansible 2.11

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

Примечание

Этот плагин входит в коллекцию community.crypto (версия 1.4.0).

Для его установки используйте: ansible-galaxy collection install community.crypto.

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

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

Обзор

  • Этот модуль позволяет запросить информацию о сертификатах OpenSSL.
  • Он использует библиотеки pyOpenSSL или cryptography для взаимодействия с OpenSSL. Если доступны обе библиотеки (и соответствуют минимальным требованиям по версиям), cryptography будет предпочтительнее, чем pyOpenSSL (если не указан backend с помощью select_crypto_backend). Обратите внимание, что backend pyOpenSSL был устаревшим в Ansible 2.9 и будет удален в community.crypto 2.0.0.
  • Обратите внимание, что этот модуль назывался 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. При использовании полных имен классов или ключевого слова collections следует использовать новое имя community.crypto.x509_certificate_info для избежания предупреждений об устаревании.

Требования

Ниже приведены требования, необходимые на хосте, на котором выполняется этот модуль.

  • PyOpenSSL >= 0.15 или cryptography >= 1.6

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
content
строка
добавлен в 1.0.0 community.crypto
Содержание сертификата X.509 в формате PEM.
Должен быть указан либо path, либо content, но не оба.
path
путь
Абсолютный путь к файлу сертификата на удаленном сервере.
Должен быть указан либо path, либо content, но не оба.
select_crypto_backend
строка
    Варианты:
  • auto ←
  • cryptography
  • pyopenssl
Определяет, какой криптографический backend использовать.
По умолчанию выбирается auto, который пытается использовать cryptography, если доступен, и переходит к pyopenssl.
Если установлено значение pyopenssl, будет использоваться библиотека pyOpenSSL.
Если установлено значение cryptography, будет использоваться библиотека cryptography.
Обратите внимание, что backend pyopenssl устарел в Ansible 2.9 и будет удален в community.crypto 2.0.0. С этого момента будет доступен только backend cryptography.
valid_at
словарь
Словарь имен, сопоставленных со спецификациями времени. Каждое время, указанное здесь, будет проверяться на соответствие времени действительности сертификата. Смотрите значение возврата valid_at для информации о результатах.
Время может быть указано либо как относительное время, либо как абсолютное значение метки времени.
Время всегда будет интерпретироваться как UTC.
Допустимый формат — [+-]timespec | ASN.1 TIME, где timespec может быть целым числом + [w | d | h | m | s], (например, +32w1d2h, и ASN.1 TIME (иными словами, шаблон YYYYMMDDHHMMSSZ). Обратите внимание, что все метки времени будут рассматриваться как UTC.

Примечания

Примечание

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

См. также

См. также

community.crypto.x509_certificate

Официальная документация по модулю community.crypto.x509_certificate.

community.crypto.x509_certificate_pipe

Официальная документация по модулю community.crypto.x509_certificate_pipe.

Примеры

- 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
  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
список / элементы=строка
успех и если используется не pyOpenSSL backend
Издатель сертификата уполномоченного органа как список общих имён.
Это none если расширение AuthorityKeyIdentifier отсутствует.

Пример:
[DNS:www.ansible.com, IP:1.2.3.4]
authority_cert_serial_number
целое число
успех и если используется не pyOpenSSL backend
Серийный номер сертификата уполномоченного органа.
Это none если расширение AuthorityKeyIdentifier отсутствует.

Пример:
12345
authority_key_identifier
строка
успех и если используется не pyOpenSSL backend
Идентификатор ключа уполномоченного органа.
Идентификатор возвращается в шестнадцатеричном формате, с : используемым для разделения байтов.
Это 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) расширения.

Пример:
MAMCAQU=
fingerprints
словарь
добавлен в 1.2.0 community.crypto
успех
Отпечатки пальцев 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
словарь
успех
Издатель сертификата.
Обратите внимание, что для повторяющихся значений возвращается только последнее.

Пример:
{"organizationName": "Ansible", "commonName": "ca.example.com"}
issuer_ordered
список / элементы=список
успех
Издатель сертификата как упорядоченный список кортежей.

Пример:
[["organizationName", "Ansible"], ["commonName": "ca.example.com"]]
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
логическое
успех
yes если расширение OCSP Must Staple присутствует, none в противном случае.

ocsp_must_staple_critical
логическое
успех
Является ли расширение ocsp_must_staple критическим.

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

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

Пример:
-----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A...
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...
serial_number
целое число
успех
Серийный номер сертификата.

Пример:
1234
signature_algorithm
строка
успех
Алгоритм подписи, используемый для подписи сертификата.

Пример:
sha256WithRSAEncryption
subject
словарь
успех
Субъект сертификата в виде словаря.
Обратите внимание, что для повторяющихся значений возвращается только последнее.

Пример:
{"commonName": "www.example.com", "emailAddress": "test@example.com"}
subject_alt_name
список / элементы=строка
успех
Элементы в расширении subject_alt_name, или none если расширение отсутствует.

Пример:
[DNS:www.ansible.com, IP:1.2.3.4]
subject_alt_name_critical
логическое
успех
Является ли расширение subject_alt_name критическим.

subject_key_identifier
строка
успех и если используется не pyOpenSSL backend
Идентификатор ключа субъекта.
Идентификатор возвращается в шестнадцатеричном формате, с : используемым для разделения байтов.
Это 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)

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

Spec-Zone.ru

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