Spec-Zone.ru › Ansible

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

Примечание

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

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

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

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

Новое в community.crypto 1.3.0

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

Обзор

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

Требования

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

  • cryptography >= 1.3

Параметры

Параметр

Комментарии

authority_cert_issuer

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

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

Значения должны быть префиксрованы соответствующими опциями. (То есть, email, URI, DNS, RID, IP, dirName, otherName, и те, которые специфичны для вашего CA).

Пример: DNS:ca.example.org

Если указано, то authority_cert_serial_number также должно быть указано.

Обратите внимание, что коммерческие CA игнорируют это значение, соответственно используют своё значение по умолчанию. Указание этого параметра полезно в основном для самозаверяемых сертификатов или для собственных CA.

Обратите внимание, что это поддерживается только если используется бэкенд cryptography!

Расширение AuthorityKeyIdentifier будет добавлено только если хотя бы одно из authority_key_identifier, authority_cert_issuer и authority_cert_serial_number указано.

authority_cert_serial_number

целое число

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

Если указано, то authority_cert_issuer также должно быть указано.

Обратите внимание, что это поддерживается только если используется бэкенд cryptography!

Обратите внимание, что коммерческие CA игнорируют это значение, соответственно используют своё значение по умолчанию. Указание этого параметра полезно в основном для самозаверяемых сертификатов или для собственных CA.

Расширение AuthorityKeyIdentifier будет добавлено только если хотя бы одно из authority_key_identifier, authority_cert_issuer и authority_cert_serial_number указано.

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

authority_key_identifier

строка

Идентификатор ключа уполномоченного органа в виде шестнадцатеричной строки, где два байта разделены двоеточиями.

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

Обратите внимание, что коммерческие CA игнорируют это значение, соответственно используют своё значение по умолчанию. Указание этого параметра полезно в основном для самозаверяемых сертификатов или для собственных CA.

Обратите внимание, что это поддерживается только если используется бэкенд cryptography!

Расширение AuthorityKeyIdentifier будет добавлено только если хотя бы одно из authority_key_identifier, authority_cert_issuer и authority_cert_serial_number указано.

basic_constraints

алиасы: basicConstraints

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

Указывает базовые ограничения, например, является ли сертификат CA.

basic_constraints_critical

алиасы: basicConstraints_critical

булево

Должен ли расширение basicConstraints рассматриваться как критический.

Варианты:

  • false ← (по умолчанию)
  • true

common_name

алиасы: CN, commonName

строка

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

content

строка

Существующий запрос на подписание сертификата (CSR).

country_name

алиасы: C, countryName

строка

Поле countryName субъекта запроса на подписание сертификата.

create_subject_key_identifier

булево

Создать идентификатор ключа субъекта из открытого ключа.

Обратите внимание, что коммерческие CA могут игнорировать значение, соответственно использовать свое собственное значение. Указание этого параметра полезно в основном для самозаверяемых сертификатов или для собственных CA.

Обратите внимание, что это поддерживается только если используется бэкенд cryptography!

Варианты:

  • false ← (по умолчанию)
  • true

crl_distribution_points

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

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

Позволяет указать один или несколько пунктов распространения CRL.

Поддерживается только бэкендом cryptography.

crl_issuer

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

Информация об издателе CRL.

full_name

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

Описание того, как можно получить CRL.

Взаимоисключительно с crl_distribution_points[].relative_name.

Пример: URI:https://ca.example.com/revocations.crl.

reasons

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

Список причин, по которым этот пункт распространения может быть использован при проверке отзыва.

Варианты:

  • "key_compromise"
  • "ca_compromise"
  • "affiliation_changed"
  • "superseded"
  • "cessation_of_operation"
  • "certificate_hold"
  • "privilege_withdrawn"
  • "aa_compromise"

relative_name

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

Описание того, как CRL может быть получен относительно издателя CRL.

Взаимоисключительно с crl_distribution_points[].full_name.

Пример: /CN=example.com.

Может быть использован только при установке криптографии >= 1.6.

END_OF_DOCUMENT_MARKER

digest

string

Используемый дайджест при подписании запроса на подписание сертификата с помощью закрытого ключа.

По умолчанию: "sha256"

email_address

aliases: E, emailAddress

string

Поле emailAddress в субъекте запроса на подписание сертификата.

extended_key_usage

aliases: extKeyUsage, extendedKeyUsage

list / elements=string

Дополнительные ограничения (например, аутентификация клиента, аутентификация сервера) на разрешенные цели использования открытого ключа.

extended_key_usage_critical

aliases: extKeyUsage_critical, extendedKeyUsage_critical

boolean

Должен ли расширенный ключ extkeyUsage считаться критичным.

Варианты:

  • false ← (по умолчанию)
  • true

key_usage

aliases: keyUsage

list / elements=string

Определяет назначение (например, шифрование, подпись, подписание сертификата) ключа, содержащегося в сертификате.

key_usage_critical

aliases: keyUsage_critical

boolean

Должен ли расширение keyUsage считаться критичным.

Варианты:

  • false ← (по умолчанию)
  • true

locality_name

aliases: L, localityName

string

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

name_constraints_critical

boolean

Должно ли расширение Name Constraints считаться критичным.

Варианты:

  • false ← (по умолчанию)
  • true

name_constraints_excluded

list / elements=string

Для сертификатов CA, это список идентификаторов, описывающих поддеревья имен, для которых данная CA не должна выдавать сертификаты.

Значения должны быть префиксрованы соответствующими параметрами. (То есть email, URI, DNS, RID, IP, dirName, otherName, и те, которые специфичны для вашей CA).

name_constraints_permitted

list / elements=string

Для сертификатов CA, это список идентификаторов, описывающих поддеревья имен, для которых данная CA может выдавать сертификаты.

Значения должны быть префиксрованы соответствующими параметрами. (То есть email, URI, DNS, RID, IP, dirName, otherName, и те, которые специфичны для вашей CA).

ocsp_must_staple

aliases: ocspMustStaple

boolean

Указывает, что сертификат должен содержать расширение OCSP Must Staple (https://tools.ietf.org/html/rfc7633).

Варианты:

  • false ← (по умолчанию)
  • true

ocsp_must_staple_critical

aliases: ocspMustStaple_critical

boolean

Должен ли расширение OCSP Must Staple считаться критичным.

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

Варианты:

  • false ← (по умолчанию)
  • true

organization_name

aliases: O, organizationName

string

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

organizational_unit_name

aliases: OU, organizationalUnitName

string

Поле organizationalUnitName в субъекте запроса на подписание сертификата.

privatekey_content

string

Содержимое закрытого ключа, используемого при подписании запроса на подпись сертификата.

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

privatekey_passphrase

string

Пароль для закрытого ключа.

Требуется, если закрытый ключ защищен паролем.

privatekey_path

path

Путь к закрытому ключу, используемому при подписании запроса на подпись сертификата.

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

select_crypto_backend

string

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

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

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

Варианты:

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

state_or_province_name

псевдонимы: ST, stateOrProvinceName

string

Поле stateOrProvinceName субъекта запроса на подпись сертификата.

subject

dictionary

Пары ключ/значение, которые будут присутствовать в поле имени субъекта запроса на подпись сертификата.

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

Если порядок компонентов важен, используйте subject_ordered.

Взаимоисключающе с subject_ordered.

subject_alt_name

псевдонимы: subjectAltName

list / elements=string

Расширение Subject Alternative Name (SAN) для добавления в запрос на подпись сертификата.

Значения должны начинаться с префикса. (Это email, URI, DNS, RID, IP, dirName, otherName и те, которые специфичны для вашего центра сертификации).

Обратите внимание, что если SAN не указан, но указано общее имя, общее имя будет добавлено как SAN, за исключением случая, если use_common_name_for_san установлено в false.

Подробнее на https://tools.ietf.org/html/rfc5280#section-4.2.1.6.

subject_alt_name_critical

псевдонимы: subjectAltName_critical

boolean

Следует ли рассматривать расширение subjectAltName как критическое.

Варианты:

  • false ← (по умолчанию)
  • true

subject_key_identifier

string

Идентификатор ключа субъекта в виде шестнадцатеричной строки, где два байта разделены двоеточиями.

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

Обратите внимание, что коммерческие ЦС игнорируют это значение, соответственно используют значение по своему выбору. Указание этого параметра в основном полезно для самозаверяющих сертификатов или для собственных ЦС.

Обратите внимание, что этот параметр можно использовать только в том случае, если create_subject_key_identifier равно false.

Обратите внимание, что это поддерживается только в случае использования бэкэнда cryptography!

subject_ordered

list / elements=dictionary

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

Список словарей, где каждый словарь должен содержать одну пару ключ/значение. Эта пара ключ/значение будет присутствовать в поле имени субъекта запроса на подпись сертификата.

Если вы хотите указать более одного значения с одним и тем же ключом подряд, вы можете использовать список в качестве значения.

Взаимоисключающе с subject, а также с любым другим параметром поля субъекта, таким как country_name, state_or_province_name, locality_name, organization_name, organizational_unit_name, common_name или email_address.

use_common_name_for_san

псевдонимы: useCommonNameForSAN

boolean

Если установлено значение true, модуль заполнит общее имя для subject_alt_name с префиксом DNS:, если SAN не указан.

Варианты:

  • false
  • true ← (по умолчанию)

version

integer

Версия запроса на подпись сертификата.

Единственно допустимое значение в соответствии с RFC 2986 — 1.

Этот параметр больше не принимает неподдерживаемые значения, начиная с community.crypto 2.0.0.

Варианты:

  • 1 ← (по умолчанию)

Атрибуты

Атрибут

Поддержка

Описание

check_mode

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

В режиме проверки, закрытые ключи не будут (пере)генерированы, будет только установлено изменённое состояние. Это изменится в community.crypto 3.0.0.

Начиная с community.crypto 3.0.0, модуль будет игнорировать режим проверки и всегда работать так, как будто режим проверки неактивен. Если вы считаете, что это нарушает ваш случай использования этого модуля, пожалуйста, создайте проблему в репозитории community.crypto.

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

diff_mode

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

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

Примечания

Примечание

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

См. также

См. также

community.crypto.openssl_csr

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

community.crypto.x509_certificate

Генерация и/или проверка сертификатов OpenSSL.

community.crypto.x509_certificate_pipe

Генерация и/или проверка сертификатов OpenSSL.

community.crypto.openssl_dhparam

Генерация параметров Diffie-Hellman OpenSSL.

community.crypto.openssl_pkcs12

Генерация архива OpenSSL PKCS#12.

community.crypto.openssl_privatekey

Генерация закрытых ключей OpenSSL.

community.crypto.openssl_privatekey_pipe

Генерация закрытых ключей OpenSSL без доступа к диску.

community.crypto.openssl_publickey

Генерация открытого ключа OpenSSL из закрытого ключа.

community.crypto.openssl_csr_info

Предоставление информации о запросах на подписание сертификатов OpenSSL (CSR).

community.crypto.parse_serial фильтр-плагин

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

Примеры

- 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
- name: Print CSR
  ansible.builtin.debug:
    var: result.csr

- name: Generate an OpenSSL Certificate Signing Request with an inline CSR
  community.crypto.openssl_csr:
    content: "{{ lookup('ansible.builtin.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 в сертификате

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

Пример: false

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)

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

  • Система отслеживания ошибок
  • Репозиторий (источники)
  • Задать вопрос (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/openssl_csr_pipe_module.html

Spec-Zone.ru

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