Spec-Zone.ru › Ansible 2.11

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

Примечание

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

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

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

Новое в версии 1.3.0: модуля 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!
crl_distribution_points
список / элементы=словарь
добавлен в версии 1.4.0 community.crypto
Позволяет указать один или несколько пунктов распределения CRL.
Поддерживается только бэкендом cryptography.
crl_issuer
список / элементы=строка
Информация об издателе CRL.
full_name
список / элементы=строка
Описывает, как можно получить CRL.
Взаимоисключительно с 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.
Взаимоисключительно с full_name.
Пример: /CN=example.com.
Может быть использован только при установленной библиотеке криптографии версии >= 1.6.
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
строка
Содержимое закрытого ключа, используемого при подписи запроса на подписание сертификата.
Либо privatekey_path, либо privatekey_content должны быть указаны, если state равно present, но не оба.
privatekey_passphrase
строка
Пароль для закрытого ключа.
Это необходимо, если закрытый ключ защищен паролем.
privatekey_path
path
Путь к закрытому ключу, который будет использоваться для подписи запроса на сертификат.
Если параметр state имеет значение present, необходимо указать либо privatekey_path, либо privatekey_content, но не оба.
select_crypto_backend
string
    Варианты:
  • auto ←
  • cryptography
  • pyopenssl
Определяет, какой криптографический бэкенд использовать.
По умолчанию выбрано auto, которое пытается использовать cryptography при его наличии, а в противном случае использует pyopenssl.
Если установлено значение pyopenssl, будет использоваться библиотека pyOpenSSL.
Если установлено значение cryptography, будет использоваться библиотека cryptography.
Обратите внимание, что бэкенд pyopenssl устарел в Ansible 2.9 и будет удален в community.crypto 2.0.0. Начиная с этого момента, доступен только бэкенд cryptography.
state_or_province_name
string
Поле stateOrProvinceName в субъекте запроса на сертификат.

псевдонимы: ST, stateOrProvinceName
subject
dictionary
Пара ключ/значение, которые будут присутствовать в поле имени субъекта запроса на сертификат.
Если необходимо указать несколько значений с одинаковым ключом, используйте список в качестве значения.
subject_alt_name
list / elements=string
Расширение Subject Alternative Name (SAN), которое нужно добавить в запрос на сертификат.
Может быть строкой, разделенной запятыми, или списком в формате YAML.
Значения должны быть префиксрованы их вариантами (например, email, URI, DNS, RID, IP, dirName, otherName и те, которые специфичны для вашего CA).
Обратите внимание, что если SAN не указан, но указано общее имя, общее имя будет добавлено как SAN, за исключением случая, когда useCommonNameForSAN установлено в false.
Подробнее см. https://tools.ietf.org/html/rfc5280#section-4.2.1.6.

псевдонимы: subjectAltName
subject_alt_name_critical
boolean
    Варианты:
  • no ←
  • yes
Должен ли параметр subjectAltName рассматриваться как критический.

псевдонимы: subjectAltName_critical
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 имеет значение no.
Обратите внимание, что эта опция поддерживается только при использовании бэкенда cryptography!
use_common_name_for_san
boolean
    Варианты:
  • no
  • yes ←
Если установлено значение yes, модуль заполнит общее имя для subject_alt_name префиксом DNS:, если SAN не указан.

псевдонимы: useCommonNameForSAN
version
integer
По умолчанию:
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
list / elements=string
changed или success
Указывает, является ли сертификат сертификатом CA.

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

extendedKeyUsage
list / elements=string
changed или success
Дополнительные ограничения на цели использования открытого ключа.

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

Пример:
['digitalSignature', 'keyAgreement']
name_constraints_excluded
list / elements=string
changed или success
Список исключенных поддеревьев, для которых CA не может подписать сертификаты.

Пример:
['email:.com']
name_constraints_permitted
list / elements=string
changed или success
Список разрешенных поддеревьев, для которых CA может подписать сертификаты.

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

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

Пример:
/etc/ssl/private/ansible.com.pem
subject
list / elements=list
changed или success
Список кортежей субъектов, прикрепленных к CSR.

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

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


Авторы

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

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

Spec-Zone.ru

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