openssl_csr – Генерация запроса на подписание сертификата OpenSSL (CSR)
Новое в версии 2.4.
Описание
- Этот модуль позволяет (пере)генерировать запросы на подписание сертификатов OpenSSL. Он использует библиотеку pyOpenSSL для взаимодействия с openssl. Модуль поддерживает расширения subjectAltName, keyUsage, extendedKeyUsage, basicConstraints и OCSP Must Staple.
Требования
Ниже приведены требования к хосту, на котором выполняется этот модуль.
- python-pyOpenSSL >= 0.15
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes - добавлен в 2.3 | Атрибуты, которые должен иметь файл или директория. Для получения поддерживаемых флагов см. страницу man для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr. = оператор предполагается по умолчанию, в противном случае + или - операторы должны быть включены в строку.псевдонимы: attr | |
| basic_constraints - добавлен в 2.5 | Указывает базовые ограничения, такие как, является ли сертификат CA. псевдонимы: basicConstraints | |
| basic_constraints_critical - добавлен в 2.5 | Должен ли расширенный атрибут basicConstraints считаться критическим псевдонимы: basicConstraints_critical | |
| common_name - | Поле commonName в запросе на подписание сертификата субъекта псевдонимы: CN, commonName | |
| country_name - | Поле countryName в запросе на подписание сертификата субъекта псевдонимы: C, countryName | |
| digest - | Значение по умолчанию: "sha256" | Хеш-функция, используемая при подписании запроса на подписание сертификата с помощью закрытого ключа |
| email_address - | Поле emailAddress в запросе на подписание сертификата субъекта псевдонимы: E, emailAddress | |
| extended_key_usage - | Дополнительные ограничения (например, аутентификация клиента, аутентификация сервера) на разрешенные цели использования открытого ключа. Это может быть строка, разделенная запятыми, или список YAML. псевдонимы: extKeyUsage, extendedKeyUsage | |
| extended_key_usage_critical - | Должен ли расширенный атрибут extkeyUsage считаться критическим псевдонимы: extKeyUsage_critical, extendedKeyUsage_critical | |
| force boolean |
| Должен ли запрос на подписание сертификата быть принудительно перегенерирован этим модулем Ansible |
| group - | Имя группы, которая должна владеть файлом/директорией, как это передается в chown. | |
| key_usage - | Это определяет назначение (например, шифрование, подпись, подписание сертификата) ключа, содержащегося в сертификате. Это может быть строка, разделенная запятыми, или список YAML. псевдонимы: keyUsage | |
| key_usage_critical - | Должен ли расширенный атрибут keyUsage считаться критическим псевдонимы: keyUsage_critical | |
| locality_name - | Поле localityName в запросе на подписание сертификата субъекта псевдонимы: L, localityName | |
| mode - | Режим файла или директории. Для тех, кто знаком с /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую ноль, чтобы парсер YAML Ansible понял, что это восьмеричное число (например, 0644 или 01777) , либо заключить его в кавычки (например, '644' или '1777') , чтобы Ansible получил строку и выполнил собственное преобразование из строки в число. Предоставление Ansible числа без соблюдения одного из этих правил приведет к десятичному числу, что повлечет непредсказуемые результаты. Начиная с версии 1.8, режим может быть задан в виде символьного режима (например, u+rwx или u=rw,g=r,o=r). | |
| ocsp_must_staple - добавлен в 2.5 | Указывает, что сертификат должен содержать расширение OCSP Must Staple (https://tools.ietf.org/html/rfc7633). псевдонимы: ocspMustStaple | |
| ocsp_must_staple_critical - добавлен в 2.5 | Должен ли расширенный атрибут 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 | |
| owner - | Имя пользователя, который должен владеть файлом/директорией, как это передается в chown. | |
| path - / обязательно | Имя файла, в который будет записан сгенерированный запрос на подписание сертификата OpenSSL | |
| privatekey_passphrase - | Пароль для закрытого ключа. Требуется, если закрытый ключ защищен паролем. | |
| privatekey_path - / обязательно | Путь к закрытому ключу, используемому для подписи запроса на подписание сертификата. | |
| selevel - | Значение по умолчанию: "s0" | Часть контекста SELinux файла. Это атрибут MLS/MCS, иногда называемый range. Функция _default работает так же, как для seuser. |
| serole - | Часть роли контекста SELinux файла, _default функция работает аналогично seuser. | |
| setype - | Часть типа контекста SELinux файла, _default функция работает аналогично seuser. | |
| seuser - | Часть пользователя контекста SELinux файла. По умолчанию использует политику системы, если применимо. Если установлено значение _default, будет использоваться часть политики user, если она доступна. | |
| state - |
| Указывает, должен ли запрос на подписание сертификата существовать или нет, выполняя действия, если состояние отличается от указанного. |
| state_or_province_name - | Поле stateOrProvinceName в запросе на подписание сертификата субъекта псевдонимы: ST, stateOrProvinceName | |
| subject - добавлен в 2.5 | Ключ-значение, которые будут присутствовать в поле имени субъекта запроса на подписание сертификата. Если нужно указать более одного значения с тем же ключом, используйте список в качестве значения. |
| subject_alt_name - | Расширение SAN для добавления к запросу на подписание сертификата Может быть строкой, разделённой запятыми, или списком YAML. Значения должны быть префиксом их опций. (например, email, URI, DNS, RID, IP, dirName, otherName и те, которые специфичны для вашего CA)Подробнее на https://tools.ietf.org/html/rfc5280#section-4.2.1.6
псевдонимы: subjectAltName | |
| subject_alt_name_critical - | Должно ли расширение subjectAltName рассматриваться как критическое псевдонимы: subjectAltName_critical | |
| unsafe_writes boolean добавлен в 2.2 |
| По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто сломаны таким образом, что это невозможно. Один пример — файлы, смонтированные с помощью docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачно (однако он не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены проблемам гонки и могут привести к повреждению данных. |
| version - | По умолчанию: 1 | Версия запроса на подписание сертификата |
Примечания
Примечание
- Если запрос на подписание сертификата уже существует, будет проверено, содержат ли subjectAltName, keyUsage, extendedKeyUsage и basicConstraints только запрошенные значения, является ли OCSP Must Staple запрошенным, и был ли запрос подписан заданным закрытым ключом.
Примеры
# Generate an OpenSSL Certificate Signing Request
- openssl_csr:
path: /etc/ssl/csr/www.ansible.com.csr
privatekey_path: /etc/ssl/private/ansible.com.pem
common_name: www.ansible.com
# Generate an OpenSSL Certificate Signing Request with a
# passphrase protected private key
- 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
# Generate an OpenSSL Certificate Signing Request with Subject information
- 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
# Generate an OpenSSL Certificate Signing Request with subjectAltName extension
- 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'
# Generate an OpenSSL CSR with subjectAltName extension with dynamic list
- 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
# Force re-generate an OpenSSL Certificate Signing Request
- 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
# Generate an OpenSSL Certificate Signing Request with special key usages
- 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
# Generate an OpenSSL Certificate Signing Request with OCSP Must Staple
- 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
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое | Описание |
|---|---|---|
| basicConstraints список | изменилось или успех | Указывает, принадлежит ли сертификат CA Пример: ['CA:TRUE', 'pathLenConstraint:0'] |
| extendedKeyUsage список | изменилось или успех | Дополнительные ограничения на цели открытого ключа Пример: ['clientAuth'] |
| filename строка | изменилось или успех | Путь к сгенерированному запросу на подписание сертификата Пример: /etc/ssl/csr/www.ansible.com.csr |
| keyUsage список | изменилось или успех | Цель, для которой может использоваться открытый ключ Пример: ['digitalSignature', 'keyAgreement'] |
| ocsp_must_staple boolean | изменилось или успех | Указывает, включена ли функция OCSP Must Staple для сертификата |
| privatekey строка | изменилось или успех | Путь к закрытому ключу TLS/SSL, для которого был сгенерирован CSR Пример: /etc/ssl/private/ansible.com.pem |
| subject список | изменилось или успех | Список кортежей подлежащего, прикрепленных к CSR Пример: [('CN', 'www.ansible.com'), ('O', 'Ansible')] |
| subjectAltName список | изменилось или успех | Альтернативные имена, для которых действителен этот CSR Пример: ['DNS:www.ansible.com', 'DNS:m.ansible.com'] |
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Yanis Guenane (@Spredzy)
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ для улучшения.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/openssl_csr_module.html