Spec-Zone.ru › Ansible 2.10

community.crypto.openssl_csr_pipe – Генерация запроса на подписание сертификата OpenSSL (CSR)

Примечание

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

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

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

Введено в версии 1.3.0: of community.crypto

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

Обзор

  • Обратите внимание, что модуль перегенерирует существующий CSR, если он не соответствует параметрам модуля или кажется повреждённым.
  • Модуль может использовать библиотеку cryptography Python или библиотеку pyOpenSSL Python. По умолчанию он пытается определить, какая из них доступна. Это можно переопределить с помощью параметра select_crypto_backend. Обратите внимание, что бэкенд PyOpenSSL был устаревшим в Ansible 2.9 и будет удалён в community.crypto 2.0.0.
  • Этот модуль позволяет (пере)генерировать запросы на подписание сертификатов OpenSSL.
  • Этот модуль поддерживает расширения subjectAltName, keyUsage, extendedKeyUsage, basicConstraints и OCSP Must Staple.

Требования

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

  • cryptography >= 1.3
  • Или pyOpenSSL >= 0.15

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
authority_cert_issuer
список / элементы=строка
Имена, которые будут присутствовать в поле authority cert issuer запроса на подписание сертификата.
Значения должны быть префиксными (т.е., email, URI, DNS, RID, IP, dirName, otherName и те, которые специфичны для вашего CA).
Пример: DNS:ca.example.org
Если указано, то authority_key_identifier также должно быть указано.
Обратите внимание, что коммерческие CA игнорируют это значение, соответственно используют своё собственное. Указание этого параметра полезно в основном для самозаверяющих сертификатов или для собственных CA.
Обратите внимание, что это поддерживается только если используется cryptography бэкенд!
AuthorityKeyIdentifier будет добавлен только в том случае, если указан хотя бы один из authority_key_identifier, authority_cert_issuer и authority_cert_serial_number.
authority_cert_serial_number
целое число
Серийный номер сертификата авторитета.
Обратите внимание, что это поддерживается только если используется cryptography бэкенд!
Обратите внимание, что коммерческие CA игнорируют это значение, соответственно используют своё собственное. Указание этого параметра полезно в основном для самозаверяющих сертификатов или для собственных CA.
AuthorityKeyIdentifier будет добавлен только в том случае, если указан хотя бы один из authority_key_identifier, authority_cert_issuer и authority_cert_serial_number.
authority_key_identifier
строка
Идентификатор ключа авторитета в виде шестнадцатеричной строки, где два байта разделены двоеточиями.
Пример: 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:00:11:22:33
Если указано, то authority_cert_issuer также должно быть указано.
Обратите внимание, что коммерческие CA игнорируют это значение, соответственно используют своё собственное. Указание этого параметра полезно в основном для самозаверяющих сертификатов или для собственных CA.
Обратите внимание, что это поддерживается только если используется cryptography бэкенд!
AuthorityKeyIdentifier будет добавлен только в том случае, если указан хотя бы один из authority_key_identifier, authority_cert_issuer и authority_cert_serial_number.
basic_constraints
список / элементы=строка
Указывает основные ограничения, такие как является ли сертификат CA.

алиасы: basicConstraints
basic_constraints_critical
булево
    Варианты:
  • нет ←
  • да
Должен ли расширение basicConstraints рассматриваться как критическое.

алиасы: basicConstraints_critical
common_name
строка
Поле commonName субъекта запроса на подписание сертификата.

алиасы: CN, commonName
content
строка
Существующий запрос на подписание сертификата (CSR).
country_name
строка
Поле countryName субъекта запроса на подписание сертификата.

алиасы: C, countryName
create_subject_key_identifier
булево
    Варианты:
  • нет ←
  • да
Создать идентификатор ключа субъекта из открытого ключа.
Обратите внимание, что коммерческие CA могут игнорировать значение, соответственно использовать своё собственное. Указание этого параметра полезно в основном для самозаверяющих сертификатов или для собственных CA.
Обратите внимание, что это поддерживается только если используется cryptography бэкенд!
digest
строка
Значение по умолчанию:
"sha256"
Хеш-функция, используемая при подписании запроса на подписание сертификата с использованием закрытого ключа.
email_address
строка
Поле emailAddress субъекта запроса на подписание сертификата.

алиасы: E, emailAddress
extended_key_usage
список / элементы=строка
Дополнительные ограничения (например, аутентификация клиента, аутентификация сервера) на допустимые цели, для которых может быть использован открытый ключ.

алиасы: extKeyUsage, extendedKeyUsage
extended_key_usage_critical
булево
    Варианты:
  • нет ←
  • да
Должен ли расширение extkeyUsage рассматриваться как критическое.

алиасы: extKeyUsage_critical, extendedKeyUsage_critical
key_usage
список / элементы=строка
Определяет назначение (например, шифрование, подпись, подписание сертификатов) ключа, содержащегося в сертификате.

алиасы: keyUsage
key_usage_critical
булево
    Варианты:
  • нет ←
  • да
Должен ли расширение keyUsage рассматриваться как критическое.

алиасы: keyUsage_critical
locality_name
строка
Поле localityName субъекта запроса на подписание сертификата.

алиасы: L, localityName
name_constraints_critical
булево
    Варианты:
  • нет ←
  • да
Должен ли расширение Name Constraints рассматриваться как критическое.
name_constraints_excluded
список / элементы=строка
Для сертификатов CA, это указывает список идентификаторов, которые описывают поддеревья имён, для которых эта CA не имеет права выдавать сертификаты.
Значения должны быть префиксными (т.е., email, URI, DNS, RID, IP, dirName, otherName и те, которые специфичны для вашего CA).
name_constraints_permitted
список / элементы=строка
Для сертификатов CA, это указывает список идентификаторов, которые описывают поддеревья имён, для которых эта CA имеет право выдавать сертификаты.
Значения должны быть префиксными (т.е., email, URI, DNS, RID, IP, dirName, otherName и те, которые специфичны для вашего CA).
ocsp_must_staple
булево
    Варианты:
  • нет ←
  • да
Указывает, что сертификат должен содержать расширение OCSP Must Staple (https://tools.ietf.org/html/rfc7633).

алиасы: ocspMustStaple
ocsp_must_staple_critical
булево
    Варианты:
  • нет ←
  • да
Должен ли расширение OCSP Must Staple рассматриваться как критическое.
Обратите внимание, что согласно RFC, это расширение не должно отмечаться как критическое, так как старые клиенты, не знающие об OCSP Must Staple, должны отклонять такие сертификаты (см. https://tools.ietf.org/html/rfc7633#section-4).

алиасы: ocspMustStaple_critical
organization_name
строка
Поле organizationName субъекта запроса на подписание сертификата.

алиасы: O, organizationName
organizational_unit_name
строка
Поле organizationalUnitName субъекта запроса на подписание сертификата.

алиасы: OU, organizationalUnitName
privatekey_content
строка
Содержимое закрытого ключа, используемого при подписании запроса на подписание сертификата.
Если state равно present, необходимо указать либо privatekey_path, либо privatekey_content, но не оба одновременно.
privatekey_passphrase
строка
Пароль к закрытому ключу.
Требуется, если закрытый ключ защищён паролем.
privatekey_path
путь
Путь к закрытому ключу, используемому при подписании запроса на подписание сертификата.
Если state равно present, необходимо указать либо privatekey_path, либо privatekey_content, но не оба одновременно.
select_crypto_backend
строка
    Варианты:
  • авто ←
  • cryptography
  • pyopenssl
Определяет, какой криптографический бэкенд использовать.
Значение по умолчанию — auto, которое пытается использовать cryptography, если доступно, и переходит на pyopenssl.
Если установлено значение pyopenssl, будет попытка использования библиотеки pyOpenSSL.
Если установлено значение cryptography, будет попытка использования библиотеки cryptography.
Обратите внимание, что бэкенд pyopenssl устарел в Ansible 2.9 и будет удален в community.crypto 2.0.0. С этого момента будет доступен только бэкенд cryptography.
state_or_province_name
строка
Поле stateOrProvinceName субъекта запроса на подписание сертификата.

алиасы: ST, stateOrProvinceName
subject
словарь
Ключ/значение пары, которые будут присутствовать в поле имени субъекта запроса на подписание сертификата.
Если вам нужно указать более одного значения с одинаковым ключом, используйте список в качестве значения.
имя_альтернативное_темы
список / элементы=строка
Расширение имени альтернативного субъекта (SAN) для добавления к запросу на подписание сертификата.
Это может быть либо «строка, разделенная запятыми», либо список YAML.
Значения должны быть префиксными соответствующими опциями. (например, email, URI, DNS, RID, IP, dirName, otherName и специфичные для вашего ЦС).
Обратите внимание, что если SAN не указан, но указано общее имя, общее имя будет добавлено как SAN, за исключением случаев, когда useCommonNameForSAN установлено в значение false.
Подробнее см. https://tools.ietf.org/html/rfc5280#section-4.2.1.6.

псевдонимы: subjectAltName
имя_альтернативное_темы_критическое
булево
    Варианты:
  • нет ←
  • да
Следует ли рассматривать расширение subjectAltName как критическое.

псевдонимы: subjectAltName_critical
идентификатор_ключа_субъекта
строка
Идентификатор ключа субъекта в формате шестнадцатеричной строки, где два байта разделены двоеточиями.
Пример: 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:00:11:22:33
Обратите внимание, что коммерческие ЦС игнорируют это значение, соответственно используя собственное значение по умолчанию. Указание этого параметра в основном полезно для самоподписанных сертификатов или для собственных ЦС.
Обратите внимание, что этот параметр может быть использован только если create_subject_key_identifier имеет значение no.
Обратите внимание, что эта опция поддерживается только при использовании бэкенда cryptography.
использовать_общее_имя_для_san
булево
    Варианты:
  • нет
  • да ←
Если установлено значение yes, модуль заполнит общее имя для subject_alt_name с префиксом DNS:, если SAN не указан.

псевдонимы: useCommonNameForSAN
версия
целое число
По умолчанию:
1
Версия запроса на подписание сертификата.
Единственное допустимое значение согласно RFC 2986 — 1.
Этот параметр больше не будет принимать недопустимые значения с community.crypto 2.0.0.

Примечания

Примечание

  • Если запрос на подписание сертификата уже существует, он будет проверен на предмет того, содержат ли subjectAltName, keyUsage, extendedKeyUsage и basicConstraints только запрошенные значения, соответствует ли OCSP Must Staple запросу и подписан ли запрос указанным закрытым ключом.

См. также

См. также

community.crypto.openssl_csr

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

community.crypto.x509_certificate

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

community.crypto.x509_certificate_pipe

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

community.crypto.openssl_dhparam

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

community.crypto.openssl_pkcs12

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

community.crypto.openssl_privatekey

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

community.crypto.openssl_privatekey_pipe

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

community.crypto.openssl_publickey

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

community.crypto.openssl_csr_info

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

Примеры

- name: Generate an OpenSSL Certificate Signing Request
  community.crypto.openssl_csr_pipe:
    privatekey_path: /etc/ssl/private/ansible.com.pem
    common_name: www.ansible.com
  register: result
- debug:
    var: result.csr

- name: Generate an OpenSSL Certificate Signing Request with an inline CSR
  community.crypto.openssl_csr:
    content: "{{ lookup('file', '/etc/ssl/csr/www.ansible.com.csr') }}"
    privatekey_content: "{{ private_key_content }}"
    common_name: www.ansible.com
  register: result
- name: Store CSR
  ansible.builtin.copy:
    dest: /etc/ssl/csr/www.ansible.com.csr
    content: "{{ result.csr }}"
  when: result is changed

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

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

Ключ Возвращаемое значение Описание
basicConstraints
список / элементы=строка
изменено или успешно
Указывает, принадлежит ли сертификат ЦС.

Пример:
['CA:TRUE', 'pathLenConstraint:0']
csr
строка
изменено или успешно
Содержание (текущего или сгенерированного) CSR.

extendedKeyUsage
список / элементы=строка
изменено или успешно
Дополнительные ограничения на цели открытого ключа.

Пример:
['clientAuth']
keyUsage
список / элементы=строка
изменено или успешно
Назначение, для которого может использоваться открытый ключ.

Пример:
['digitalSignature', 'keyAgreement']
name_constraints_excluded
список / элементы=строка
изменено или успешно
Список исключенных поддеревьев, для которых ЦС не может подписывать сертификаты.

Пример:
['email:.com']
name_constraints_permitted
список / элементы=строка
изменено или успешно
Список разрешенных поддеревьев, для которых ЦС может подписывать сертификаты.

Пример:
['email:.somedomain.com']
ocsp_must_staple
булево
изменено или успешно
Указывает, включена ли функция OCSP Must Staple в сертификате.

privatekey
строка
изменено или успешно
Путь к закрытому ключу TLS/SSL, для которого был сгенерирован CSR.
Будет none, если закрытый ключ был предоставлен в privatekey_content.

Пример:
/etc/ssl/private/ansible.com.pem
subject
список / элементы=список
изменено или успешно
Список кортежей субъекта, прикрепленных к CSR.

Пример:
[('CN', 'www.ansible.com'), ('O', 'Ansible')]
subjectAltName
список / элементы=строка
изменено или успешно
Альтернативные имена, для которых данный CSR действителен.

Пример:
['DNS:www.ansible.com', 'DNS:m.ansible.com']


Авторы

  • Yanis Guenane (@Spredzy)
  • Felix Fontein (@felixfontein)

© 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_csr_pipe_module.html

Spec-Zone.ru

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