Модуль community.crypto.openssl_csr – создание запроса на подпись сертификата OpenSSL (CSR)
Примечание
Этот модуль входит в коллекцию community.crypto (версия 3.2.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в состав ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.crypto. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.crypto.openssl_csr.
Краткое описание
- Обратите внимание: модуль повторно создаёт существующий CSR, если он не соответствует параметрам модуля или выглядит повреждённым. Если вы опасаетесь, что это может привести к перезаписи существующего CSR, рассмотрите возможность использования параметра
backup. - Этот модуль позволяет создавать и повторно создавать запросы на подпись сертификатов OpenSSL.
- Модуль поддерживает расширения subjectAltName, keyUsage, extendedKeyUsage, basicConstraints и OCSP Must Staple.
Требования
Перечисленные ниже требования должны быть выполнены на узле, на котором запускается этот модуль.
- cryptography >= 3.3
Параметры
Параметр | Комментарии |
|---|---|
attributes алиасы: attr string | Атрибуты, которые должен иметь создаваемый объект файловой системы. Список поддерживаемых флагов см. на странице руководства для Эта строка должна содержать атрибуты в том же порядке, в котором они отображаются в По умолчанию предполагается оператор |
authority_cert_issuer list / elements=string | Имена, которые будут указаны в поле издателя сертификата центра сертификации запроса на подпись сертификата. Перед значениями необходимо указывать их параметры. (То есть Пример: Если этот параметр задан, необходимо также задать Обратите внимание, что коммерческие центры сертификации игнорируют это значение и используют выбранное ими значение. Этот параметр полезен главным образом для самоподписанных сертификатов или собственных центров сертификации. Расширение |
authority_cert_serial_number integer | Серийный номер сертификата центра сертификации. Если этот параметр задан, необходимо также задать Обратите внимание, что коммерческие центры сертификации игнорируют это значение и используют выбранное ими значение. Этот параметр полезен главным образом для самоподписанных сертификатов или собственных центров сертификации. Расширение Этот параметр принимает значение типа integer. Если необходимо указать серийный номер в виде шестнадцатеричной строки с разделителями-двoеточиями, например |
authority_key_identifier string | Идентификатор ключа центра сертификации в виде шестнадцатеричной строки, в которой два байта разделены двоеточием. Пример: Обратите внимание, что коммерческие центры сертификации игнорируют это значение и используют выбранное ими значение. Этот параметр полезен главным образом для самоподписанных сертификатов или собственных центров сертификации. Расширение |
backup boolean | Создать резервную копию с отметкой времени, чтобы можно было восстановить исходный запрос на подпись сертификата, если он случайно был перезаписан новым. Варианты:
|
basic_constraints алиасы: basicConstraints list / elements=string | Задает основные ограничения, например указывает, является ли сертификат сертификатом центра сертификации. |
basic_constraints_critical алиасы: basicConstraints_critical boolean | Следует ли считать расширение basicConstraints критическим. Варианты:
|
common_name алиасы: CN, commonName string | Поле commonName субъекта запроса на подпись сертификата. |
country_name алиасы: C, countryName string | Поле countryName субъекта запроса на подпись сертификата. |
create_subject_key_identifier boolean | Создать идентификатор ключа субъекта на основе открытого ключа. Обратите внимание, что коммерческие центры сертификации могут игнорировать это значение и использовать вместо него выбранное ими значение. Этот параметр полезен главным образом для самоподписанных сертификатов или собственных центров сертификации. Варианты:
|
crl_distribution_points list / elements=dictionary добавлено в community.crypto 1.4.0 | Позволяет указать одну или несколько точек распространения списка отзыва сертификатов (CRL). |
|
crl_issuer list / elements=string |
Сведения об издателе списка отзыва сертификатов (CRL). |
|
full_name list / elements=string |
Описывает способ получения списка отзыва сертификатов (CRL). Несовместим с Пример: |
|
reasons list / elements=string |
Список причин, для которых можно использовать эту точку распространения при проверке отзыва сертификатов. Варианты:
|
|
relative_name list / elements=string |
Описывает способ получения списка отзыва сертификатов (CRL) относительно его издателя. Несовместим с Пример: |
digest string | Хеш-функция, используемая при подписании запроса на подпись сертификата закрытым ключом. По умолчанию: |
email_address алиасы: E, emailAddress string | Поле emailAddress субъекта запроса на подпись сертификата. |
extended_key_usage алиасы: extKeyUsage, extendedKeyUsage list / elements=string | Дополнительные ограничения (например, аутентификация клиента или сервера) на допустимые цели использования открытого ключа. |
extended_key_usage_critical алиасы: extKeyUsage_critical, extendedKeyUsage_critical boolean | Следует ли считать расширение extkeyUsage критическим. Варианты:
|
force boolean | Следует ли принудительно пересоздать запрос на подпись сертификата с помощью этого модуля Ansible. Варианты:
|
group string | Имя группы, которой должен принадлежать объект файловой системы; оно передается в Если значение не задано, используется текущая группа текущего пользователя. Если пользователь — root, можно сохранить прежнего владельца. |
key_usage алиасы: keyUsage list / elements=string | Задает назначение ключа, содержащегося в сертификате (например, шифрование, подпись или подписание сертификатов). |
key_usage_critical алиасы: keyUsage_critical boolean | Следует ли считать расширение keyUsage критическим. Варианты:
|
locality_name алиасы: L, localityName string | Поле localityName субъекта запроса на подпись сертификата. |
mode any | Права доступа, которые должен иметь создаваемый объект файловой системы. Если вы привыкли к Если задать число для Ansible, не следуя ни одному из этих правил, оно будет считаться десятичным, что приведет к неожиданным результатам. Начиная с Ansible 1.8 режим можно задавать в символьном виде (например, Если Если Указание |
name_constraints_critical boolean добавлено в community.crypto 1.1.0 | Следует ли считать расширение ограничений имен (Name Constraints) критическим. Варианты:
|
name_constraints_excluded list / elements=string добавлено в community.crypto 1.1.0 | Для сертификатов центра сертификации задает список идентификаторов, описывающих поддеревья имен, для которых этому центру сертификации не разрешено выпускать сертификаты. Перед значениями необходимо указывать их параметры. (То есть |
name_constraints_permitted list / elements=string добавлено в community.crypto 1.1.0 | Для сертификатов центра сертификации задает список идентификаторов, описывающих поддеревья имен, для которых этому центру сертификации разрешено выпускать сертификаты. Перед значениями необходимо указывать их параметры. (То есть |
ocsp_must_staple алиасы: ocspMustStaple boolean | Указывает, что сертификат должен содержать расширение OCSP Must Staple (https://tools.ietf.org/html/rfc7633). Варианты:
|
ocsp_must_staple_critical алиасы: ocspMustStaple_critical boolean | Следует ли считать расширение OCSP Must Staple критическим. Обратите внимание: согласно RFC это расширение не следует помечать как критическое, поскольку старые клиенты, не поддерживающие OCSP Must Staple, должны отклонять такие сертификаты (см. https://tools.ietf.org/html/rfc7633#section-4). Варианты:
|
organization_name алиасы: O, organizationName string | Поле organizationName субъекта запроса на подпись сертификата. |
organizational_unit_name алиасы: OU, organizationalUnitName string | Поле organizationalUnitName субъекта запроса на подпись сертификата. |
owner string | Имя пользователя, которому должен принадлежать объект файловой системы; оно передается в Если значение не задано, используется текущий пользователь. Если пользователь — root, можно сохранить прежнего владельца. Числовое имя пользователя будет считаться идентификатором пользователя, а не именем. Во избежание неоднозначности не используйте числовые имена пользователей. |
path path / обязательный | Имя файла, в который будет записан созданный запрос OpenSSL на подпись сертификата. |
privatekey_content string добавлено в community.crypto 1.0.0 | Содержимое закрытого ключа, используемого для подписания запроса на подпись сертификата. Если |
privatekey_passphrase string | Парольная фраза для закрытого ключа. Этот параметр обязателен, если закрытый ключ защищен паролем. |
privatekey_path path | Путь к закрытому ключу, используемому для подписания запроса на подпись сертификата. Если |
return_content boolean добавлено в community.crypto 1.0.0 | Если задано значение Варианты:
|
select_crypto_backend string | Определяет, какую криптографическую подсистему использовать. По умолчанию выбирается Если задано значение Обратите внимание, что в community.crypto 3.0.0 все значения работают одинаково. В одной из последующих версий этот параметр будет объявлен устаревшим. Рекомендуется не задавать его явно. Варианты:
|
selevel string | Часть уровня контекста объекта файловой системы SELinux. Это атрибут MLS/MCS, иногда известный как Если задано значение |
serole string | Часть роли контекста объекта файловой системы SELinux. Если задано значение |
setype string | Часть типа контекста объекта файловой системы SELinux. Если задано значение |
seuser string | Часть пользователя контекста объекта файловой системы SELinux. По умолчанию используется политика Если задано значение |
state string | Должен ли существовать запрос на подпись сертификата; если указанное состояние отличается от текущего, выполняется соответствующее действие. Варианты:
|
state_or_province_name псевдонимы: ST, stateOrProvinceName string | Поле stateOrProvinceName в субъекте запроса на подпись сертификата. |
subject dictionary | Пары «ключ/значение», которые будут включены в поле имени субъекта запроса на подпись сертификата. Если нужно указать несколько значений с одним и тем же ключом, используйте список в качестве значения. Если порядок компонентов важен, используйте Несовместимо с |
subject_alt_name псевдонимы: subjectAltName list / элементы=string | Расширение Subject Alternative Name (SAN), добавляемое в запрос на подпись сертификата. Перед значениями необходимо указать их тип. (Это Обратите внимание: если SAN не указан, но задано общее имя, оно будет добавлено в качестве SAN, если только для Подробнее: https://tools.ietf.org/html/rfc5280#section-4.2.1.6. |
subject_alt_name_critical псевдонимы: subjectAltName_critical boolean | Следует ли считать расширение subjectAltName критическим. Варианты:
|
subject_key_identifier string | Идентификатор ключа субъекта в виде шестнадцатеричной строки, в которой два байта разделены двоеточиями. Пример: Обратите внимание: коммерческие центры сертификации игнорируют это значение и используют значение по собственному выбору. Указание этого параметра в основном полезно для самоподписанных сертификатов или собственных центров сертификации. Обратите внимание: этот параметр можно использовать, только если |
subject_ordered list / элементы=dictionary добавлено в community.crypto 2.0.0 | Список словарей, каждый из которых должен содержать одну пару «ключ/значение». Эта пара будет включена в поле имени субъекта запроса на подпись сертификата. Если нужно указать подряд несколько значений с одним и тем же ключом, можно использовать список в качестве значения. Несовместимо с |
unsafe_writes boolean | Влияет на то, когда следует использовать атомарные операции для предотвращения повреждения данных или несогласованного чтения целевого объекта файловой системы. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения целевых объектов файловой системы, однако в некоторых случаях конфигурация систем или их неисправности не позволяют этого. Например, объекты файловой системы, смонтированные Docker, нельзя атомарно обновить изнутри контейнера, поэтому их можно записывать только небезопасным способом. Этот параметр позволяет Ansible использовать небезопасные способы обновления объектов файловой системы, если атомарные операции завершаются ошибкой (однако он не заставляет Ansible выполнять небезопасную запись). ВАЖНО! Небезопасная запись подвержена состояниям гонки и может привести к повреждению данных. Варианты:
|
use_common_name_for_san псевдонимы: useCommonNameForSAN boolean | Если задано значение Варианты:
|
version integer | Версия запроса на подпись сертификата. Согласно RFC 2986, допустимо только значение 1. Начиная с community.crypto 2.0.0 этот параметр больше не принимает неподдерживаемые значения. Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: full | Модуль может работать в режиме |
diff_mode | Поддержка: full | В режиме diff возвращает сведения об изменениях (или возможных изменениях в |
idempotent | Поддержка: full | При повторном запуске подряд вне режима check mode с теми же аргументами второй вызов сообщает об отсутствии изменений. Предполагается, что система, контролируемая или опрашиваемая модулем, не изменилась существенным образом. |
safe_file_operations | Поддержка: full | Использует функции Ansible для строгих операций с файлами, обеспечивая правильные разрешения и предотвращая повреждение данных. |
Примечания
Примечание
- Если запрос на подпись сертификата уже существует, будет проверено, содержат ли subjectAltName, keyUsage, extendedKeyUsage и basicConstraints только запрошенные значения, соответствует ли OCSP Must Staple запросу и подписан ли запрос указанным закрытым ключом.
См. также
См. также
- community.crypto.openssl_csr_pipe
-
Создание запроса на подпись сертификата OpenSSL (CSR).
- community.crypto.x509_certificate
-
Создание и/или проверка сертификатов OpenSSL.
- community.crypto.x509_certificate_pipe
-
Создание и/или проверка сертификатов OpenSSL.
- community.crypto.openssl_dhparam
-
Создание параметров Диффи — Хеллмана для 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:
path: /etc/ssl/csr/www.ansible.com.csr
privatekey_path: /etc/ssl/private/ansible.com.pem
common_name: www.ansible.com
- name: Generate an OpenSSL Certificate Signing Request with an inline key
community.crypto.openssl_csr:
path: /etc/ssl/csr/www.ansible.com.csr
privatekey_content: "{{ private_key_content }}"
common_name: www.ansible.com
- name: Generate an OpenSSL Certificate Signing Request with a passphrase protected private key
community.crypto.openssl_csr:
path: /etc/ssl/csr/www.ansible.com.csr
privatekey_path: /etc/ssl/private/ansible.com.pem
privatekey_passphrase: ansible
common_name: www.ansible.com
- name: Generate an OpenSSL Certificate Signing Request with Subject information
community.crypto.openssl_csr:
path: /etc/ssl/csr/www.ansible.com.csr
privatekey_path: /etc/ssl/private/ansible.com.pem
country_name: FR
organization_name: Ansible
email_address: jdoe@ansible.com
common_name: www.ansible.com
- name: Generate an OpenSSL Certificate Signing Request with subjectAltName extension
community.crypto.openssl_csr:
path: /etc/ssl/csr/www.ansible.com.csr
privatekey_path: /etc/ssl/private/ansible.com.pem
subject_alt_name: 'DNS:www.ansible.com,DNS:m.ansible.com'
- name: Generate an OpenSSL CSR with subjectAltName extension with dynamic list
community.crypto.openssl_csr:
path: /etc/ssl/csr/www.ansible.com.csr
privatekey_path: /etc/ssl/private/ansible.com.pem
subject_alt_name: "{{ item.value | map('regex_replace', '^', 'DNS:') | list }}"
with_dict:
dns_server:
- www.ansible.com
- m.ansible.com
- name: Force regenerate an OpenSSL Certificate Signing Request
community.crypto.openssl_csr:
path: /etc/ssl/csr/www.ansible.com.csr
privatekey_path: /etc/ssl/private/ansible.com.pem
force: true
common_name: www.ansible.com
- name: Generate an OpenSSL Certificate Signing Request with special key usages
community.crypto.openssl_csr:
path: /etc/ssl/csr/www.ansible.com.csr
privatekey_path: /etc/ssl/private/ansible.com.pem
common_name: www.ansible.com
key_usage:
- digitalSignature
- keyAgreement
extended_key_usage:
- clientAuth
- name: Generate an OpenSSL Certificate Signing Request with OCSP Must Staple
community.crypto.openssl_csr:
path: /etc/ssl/csr/www.ansible.com.csr
privatekey_path: /etc/ssl/private/ansible.com.pem
common_name: www.ansible.com
ocsp_must_staple: true
- name: Generate an OpenSSL Certificate Signing Request for WinRM Certificate authentication
community.crypto.openssl_csr:
path: /etc/ssl/csr/winrm.auth.csr
privatekey_path: /etc/ssl/private/winrm.auth.pem
common_name: username
extended_key_usage:
- clientAuth
subject_alt_name: otherName:1.3.6.1.4.1.311.20.2.3;UTF8:username@localhost
- name: Generate an OpenSSL Certificate Signing Request with a CRL distribution point
community.crypto.openssl_csr:
path: /etc/ssl/csr/www.ansible.com.csr
privatekey_path: /etc/ssl/private/ansible.com.pem
common_name: www.ansible.com
crl_distribution_points:
- full_name:
- "URI:https://ca.example.com/revocations.crl"
crl_issuer:
- "URI:https://ca.example.com/"
reasons:
- key_compromise
- ca_compromise
- cessation_of_operation
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
backup_file string | Имя созданного файла резервной копии. Возвращается: при изменении и если Пример: |
basicConstraints list / элементы=string | Указывает, принадлежит ли сертификат центру сертификации. Возвращается: при изменении или успехе Пример: |
csr string добавлено в community.crypto 1.0.0 | Содержимое текущего или созданного CSR. Возвращается: если |
extendedKeyUsage list / элементы=string | Дополнительное ограничение на назначение открытого ключа. Возвращается: при изменении или успехе Пример: |
filename string | Путь к созданному запросу на подпись сертификата. Возвращается: при изменении или успехе Пример: |
keyUsage list / элементы=string | Назначение, для которого можно использовать открытый ключ. Возвращается: при изменении или успехе Пример: |
name_constraints_excluded list / элементы=string добавлено в community.crypto 1.1.0 | Список исключённых поддеревьев, для которых центр сертификации не может подписывать сертификаты. Возвращается: при изменении или успехе Пример: |
name_constraints_permitted list / элементы=string добавлено в community.crypto 1.1.0 | Список разрешённых поддеревьев, для которых можно подписывать сертификаты. Возвращается: при изменении или успехе Пример: |
ocsp_must_staple boolean | Указывает, включена ли в сертификате функция OCSP Must Staple. Возвращается: при изменении или успехе Пример: |
privatekey string | Путь к закрытому ключу TLS/SSL, для которого создан CSR. Будет иметь значение Возвращается: при изменении или успехе Пример: |
subject list / элементы=list | Список кортежей субъекта, включённых в CSR. Возвращается: при изменении или успехе Пример: |
subjectAltName list / элементы=string | Альтернативные имена, для которых действителен этот CSR. Возвращается: при изменении или успехе Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/crypto/openssl_csr_module.html