Модуль community.crypto.openssl_csr — Генерация запроса на подписание сертификата OpenSSL (CSR)
Примечание
Этот модуль является частью коллекции community.crypto (версия 2.22.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 >= 1.3
Параметры
Параметр | Комментарии |
|---|---|
attributes псевдонимы: attr строка | Атрибуты, которые должен иметь полученный объект файловой системы. Чтобы получить поддерживаемые флаги, обратитесь к странице руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr. Оператор |
authority_cert_issuer список / элементы=строка | Имена, которые будут присутствовать в поле издателя сертификата уполномоченного органа в запросе на подпись сертификата. Значения должны быть префиксными своими опциями. (То есть Пример: Если указано, Обратите внимание, что коммерческие ЦС игнорируют это значение, соответственно используют свое собственное значение. Указание этого параметра в основном полезно для самозаверяющих сертификатов или для собственных ЦС. Обратите внимание, что это поддерживается только если используется бэкенд Расширение |
authority_cert_serial_number целое число | Серийный номер сертификата уполномоченного органа. Если указано, Обратите внимание, что это поддерживается только если используется бэкенд Обратите внимание, что коммерческие ЦС игнорируют это значение, соответственно используют свое собственное значение. Указание этого параметра в основном полезно для самозаверяющих сертификатов или для собственных ЦС. Расширение Этот параметр принимает целое число. Если вы хотите предоставить серийные номера в виде разделенных двоеточием шестнадцатеричных строк, таких как |
authority_key_identifier строка | Идентификатор ключа уполномоченного органа в виде шестнадцатеричной строки, где два байта разделены двоеточиями. Пример: Обратите внимание, что коммерческие ЦС игнорируют это значение, соответственно используют свое собственное значение. Указание этого параметра в основном полезно для самозаверяющих сертификатов или для собственных ЦС. Обратите внимание, что это поддерживается только если используется бэкенд Расширение |
backup логическое | Создать файл резервной копии, включающий отметку времени, чтобы вы могли восстановить исходный CSR, если случайно перезаписали его новым. Варианты:
|
basic_constraints псевдонимы: basicConstraints список / элементы=строка | Указывает базовые ограничения, например, является ли сертификат ЦС. |
basic_constraints_critical псевдонимы: basicConstraints_critical логическое | Должен ли расширение basicConstraints рассматриваться как критический. Варианты:
|
common_name псевдонимы: CN, commonName строка | Поле commonName предмета запроса на подпись сертификата. |
country_name псевдонимы: C, countryName строка | Поле countryName предмета запроса на подпись сертификата. |
create_subject_key_identifier логическое | Создать Subject Key Identifier из открытого ключа. Обратите внимание, что коммерческие ЦС могут игнорировать значение, соответственно использовать свое собственное значение вместо этого. Указание этого параметра в основном полезно для самозаверяющих сертификатов или для собственных ЦС. Обратите внимание, что это поддерживается только если используется бэкенд Варианты:
|
crl_distribution_points список / элементы=словарь добавлен в community.crypto 1.4.0 | Позволяет указать один или несколько пунктов распространения CRL. Поддерживается только бэкендом |
|
crl_issuer список / элементы=строка |
Информация об издателе CRL. |
|
full_name список / элементы=строка |
Описывает, как можно получить CRL. Взаимоисключающие с Пример: |
|
reasons список / элементы=строка |
Список причин, по которым этот пункт распределения может быть использован для проверки отзыва. Варианты:
|
|
relative_name список / элементы=строка |
Описывает, как CRL может быть получен относительно эмитента CRL. Взаимоисключающее с Пример: Может быть использован только при установленной криптографии >= 1.6. |
digest строка | Хэш-функция, используемая при подписании запроса на подпись сертификата с помощью закрытого ключа. По умолчанию: |
email_address псевдонимы: E, emailAddress строка | Поле emailAddress субъекта запроса на подпись сертификата. |
extended_key_usage псевдонимы: extKeyUsage, extendedKeyUsage список / элементы=строка | Дополнительные ограничения (например, проверка клиента, проверка сервера) на допустимые цели, для которых может быть использован открытый ключ. |
extended_key_usage_critical псевдонимы: extKeyUsage_critical, extendedKeyUsage_critical логическое значение | Должен ли расширенный параметр extkeyUsage считаться критичным. Варианты:
|
force логическое значение | Должен ли запрос на подпись сертификата быть принудительно перегенерирован этим модулем ansible. Варианты:
|
group строка | Имя группы, которая должна владеть файловым объектом, как это передается в chown. Если не указано, используется текущая группа текущего пользователя, за исключением случая с пользователем root, в котором может сохраняться предыдущее владение. |
key_usage псевдонимы: keyUsage список / элементы=строка | Это определяет назначение (например, шифрование, подпись, подписание сертификата) ключа, содержащегося в сертификате. |
key_usage_critical псевдонимы: keyUsage_critical логическое значение | Должен ли параметр keyUsage считаться критическим. Варианты:
|
locality_name псевдонимы: L, localityName строка | Поле localityName субъекта запроса на подпись сертификата. |
mode любое | Разрешения, которые должен иметь получившийся файловый объект. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны предоставить Ansible достаточно информации, чтобы правильно их распарсить. Для согласованных результатов используйте восьмеричные числа в кавычках (например, Предоставление Ansible числа без соблюдения этих правил приведет к десятичному числу, что приведет к неожиданным результатам. Начиная с Ansible 1.8, режим может быть указан как символьный режим (например, Если Если Указание |
name_constraints_critical логическое значение добавлен в community.crypto 1.1.0 | Должен ли расширенный параметр Name Constraints считаться критическим. Варианты:
|
name_constraints_excluded список / элементы=строка добавлен в community.crypto 1.1.0 | Для сертификатов CA это список идентификаторов, которые описывают поддеревья имен, для которых данная CA не должна выдавать сертификаты. Значения должны быть префиксрованы их опциями. (Например, |
name_constraints_permitted список / элементы=строка добавлено в community.crypto 1.1.0 | Для сертификатов УЦ это список идентификаторов, описывающих поддеревья имён, для которых этот УЦ разрешено выдавать сертификаты. Значения должны быть префиксом их параметров. (То есть |
ocsp_must_staple псевдонимы: ocspMustStaple логическое | Указывает, что сертификат должен содержать расширение OCSP Must Staple (https://tools.ietf.org/html/rfc7633). Варианты:
|
ocsp_must_staple_critical псевдонимы: ocspMustStaple_critical логическое | Должен ли OCSP Must Staple расширение рассматриваться как критический. Обратите внимание, что согласно RFC, это расширение не должно помечаться как критическое, так как старые клиенты, не знающие OCSP Must Staple, должны отклонять такие сертификаты (см. https://tools.ietf.org/html/rfc7633#section-4). Варианты:
|
organization_name псевдонимы: O, organizationName строка | Поле organizationName в запросе на подписание сертификата. |
organizational_unit_name псевдонимы: OU, organizationalUnitName строка | Поле organizationalUnitName в запросе на подписание сертификата. |
owner строка | Имя пользователя, который должен владеть файловым объектом, как это передаётся в chown. Если не указано, используется текущий пользователь, за исключением случаев, когда вы root, в этом случае сохраняется предыдущее владение. Указание числового имени пользователя будет интерпретироваться как идентификатор пользователя, а не имя пользователя. Избегайте числовых имён пользователей, чтобы избежать этой путаницы. |
path путь / обязательно | Имя файла, в который будет записан сгенерированный запрос на подписание OpenSSL сертификата. |
privatekey_content строка добавлено в community.crypto 1.0.0 | Содержимое закрытого ключа для использования при подписании запроса на подписание сертификата. Должен быть указан либо |
privatekey_passphrase строка | Пароль для закрытого ключа. Это требуется, если закрытый ключ защищён паролем. |
privatekey_path путь | Путь к закрытому ключу для использования при подписании запроса на подписание сертификата. Должен быть указан либо |
return_content логическое добавлено в community.crypto 1.0.0 | Если установлено Варианты:
|
select_crypto_backend строка | Определяет, какой криптографический бэкэнд использовать. По умолчанию выбирается Если установлено Варианты:
|
selevel строка | Часть уровня SELinux файлового объекта контекста. Это атрибут MLS/MCS, иногда известный как Если установлено |
serole строка | Часть роли SELinux файлового объекта контекста. Если установлено |
setype строка | Часть типа SELinux файлового объекта контекста. Если установлено |
seuser строка | Часть пользователя SELinux файлового объекта контекста. По умолчанию используется политика Если установлено |
state string | Требуется ли создание запроса на подпись сертификата или нет, действия выполняются, если состояние отличается от заданного. Варианты:
|
state_or_province_name псевдонимы: ST, stateOrProvinceName string | Поле stateOrProvinceName в субъекте запроса на подпись сертификата. |
subject словарь | Ключевые/значения пары, которые будут присутствовать в поле имени субъекта запроса на подпись сертификата. Если вам нужно указать более одного значения с одним ключом, используйте список в качестве значения. Если порядок компонентов важен, используйте Взаимоисключающее с |
subject_alt_name псевдонимы: subjectAltName список / элементы=строка | Расширение Subject Alternative Name (SAN) для добавления к запросу на подпись сертификата. Значения должны быть префиксными с помощью их вариантов. (Это Обратите внимание, что если SAN не указан, но указано общее имя, общее имя будет добавлено как SAN, за исключением случая, когда Подробнее на https://tools.ietf.org/html/rfc5280#section-4.2.1.6. |
subject_alt_name_critical псевдонимы: subjectAltName_critical логическое | Должно ли расширение subjectAltName считаться критическим. Варианты:
|
subject_key_identifier строка | Идентификатор ключа субъекта в виде шестнадцатеричной строки, где два байта разделены двоеточиями. Пример: Обратите внимание, что коммерческие CA игнорируют это значение, соответственно используют свое собственное значение. Указание этого параметра в основном полезно для самоподписанных сертификатов или для собственных CA. Обратите внимание, что этот параметр может использоваться только в том случае, если Обратите внимание, что это поддерживается только если используется |
subject_ordered список / элементы=словарь добавлен в community.crypto 2.0.0 | Список словарей, где каждый словарь должен содержать одну пару ключ/значение. Эта пара ключ/значение будет присутствовать в поле имени субъекта запроса на подпись сертификата. Если вы хотите указать более одного значения с одним ключом в строке, вы можете использовать список в качестве значения. Взаимоисключающее с |
unsafe_writes логическое | Влияет на использование атомарных операций для предотвращения повреждения данных или несогласованных чтений из объекта целевой файловой системы. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из объектов целевой файловой системы, но иногда системы настраиваются или просто работают некорректно, что препятствует этому. Одним примером являются объекты файловой системы, смонтированные через docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только не безопасным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления объектов файловой системы при сбое атомарных операций (однако, он не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены проблемам гонки и могут привести к повреждению данных. Варианты:
|
use_common_name_for_san псевдонимы: useCommonNameForSAN логическое | Если установлено в Варианты:
|
version целое число | Версия запроса на подпись сертификата. Единственное допустимое значение в соответствии с RFC 2986 — 1. Этот параметр больше не принимает недопустимые значения с версии community.crypto 2.0.0. Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Может работать в |
diff_mode | Поддержка: полная | Возвращает подробности о том, что изменилось (или, возможно, нуждается в изменении в |
safe_file_operations | Поддержка: полная | Использует строгие функции работы с файлами 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
-
Генерация параметров Diffie-Hellman OpenSSL.
- community.crypto.openssl_pkcs12
-
Генерация архива PKCS#12 OpenSSL.
- 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 строка | Имя созданного файла резервной копии. Возвращено: изменилось и если Пример: |
basicConstraints список / элементы=строка | Указывает, принадлежит ли сертификат ЦС Возвращено: изменено или успех Пример: |
csr строка добавлен в community.crypto 1.0.0 | Содержимое CSR (текущего или сгенерированного). Возвращено: если |
extendedKeyUsage список / элементы=строка | Дополнительное ограничение на назначение открытого ключа Возвращено: изменено или успех Пример: |
filename строка | Путь к сгенерированному запросу на подписание сертификата Возвращено: изменено или успех Пример: |
keyUsage список / элементы=строка | Назначение, для которого может использоваться открытый ключ Возвращено: изменено или успех Пример: |
name_constraints_excluded список / элементы=строка добавлен в community.crypto 1.1.0 | Список исключённых поддеревьев, для которых ЦС не может подписывать сертификаты. Возвращено: изменено или успех Пример: |
name_constraints_permitted список / элементы=строка добавлен в community.crypto 1.1.0 | Список разрешённых поддеревьев для подписания сертификатов. Возвращено: изменено или успех Пример: |
ocsp_must_staple логическое | Указывает, включена ли функция OCSP Must Staple для сертификата Возвращено: изменено или успех Пример: |
privatekey строка | Путь к закрытому ключу TLS/SSL, для которого был сгенерирован CSR Будет Возвращено: изменено или успех Пример: |
subject список / элементы=список | Список кортежей субъекта, прикрепленных к CSR Возвращено: изменено или успех Пример: |
subjectAltName список / элементы=строка | Альтернативные имена, для которых этот CSR действителен Возвращено: изменено или успех Пример: |
Ссылки на сборку
© 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_module.html