Spec-Zone.ru › Ansible 2.10

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

Примечание

Этот плагин является частью коллекции community.crypto (версия 1.3.0).

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

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

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

Обзор

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

См. также

См. также

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
  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
Издатель сертификата уполномоченного органа в виде списка общих имён.
Возвращает none, если расширение AuthorityKeyIdentifier отсутствует.

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

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

Пример:
20190413202428Z
not_before
строка
успех
Дата начала действия в формате 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
Идентификатор ключа субъекта.
Идентификатор возвращается в шестнадцатеричном формате, с использованием : для разделения байтов.
Возвращает 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/crypto/openssl_certificate_info_module.html

Spec-Zone.ru

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