openssl_csr - Генерация запроса на подписание сертификата OpenSSL (CSR)
Новая версия с 2.4.
Описание
- Этот модуль позволяет (пере)генерировать запросы на подписание сертификатов OpenSSL. Он использует библиотеку pyOpenSSL для взаимодействия с openssl. Этот модуль поддерживает расширения subjectAltName, keyUsage, extendedKeyUsage, basicConstraints и OCSP Must Staple.
Требования
Ниже приведены требования, необходимые на хосте, на котором выполняется этот модуль.
- python-pyOpenSSL >= 0.15
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes (добавлен в 2.3) | Атрибуты файла или каталога. Для получения поддерживаемых флагов обратитесь к странице руководства (man page) для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении с помощью lsattr. псевдонимы: attr | |
| basic_constraints (добавлен в 2.5) | Указывает основные ограничения, такие как является ли сертификат центром сертификации (CA). псевдонимы: basicConstraints | |
| basic_constraints_critical (добавлен в 2.5) | Должен ли расширенный параметр basicConstraints считаться критическим псевдонимы: basicConstraints_critical | |
| common_name | Поле commonName в запросе на подпись сертификата (CSR). псевдонимы: CN, commonName | |
| country_name | Поле countryName в запросе на подпись сертификата (CSR). псевдонимы: C, countryName | |
| digest | Значение по умолчанию: "sha256" | Хеш-функция, используемая при подписи запроса на подпись сертификата с помощью закрытого ключа. |
| email_address | Поле emailAddress в запросе на подпись сертификата (CSR). псевдонимы: E, emailAddress | |
| extended_key_usage | Дополнительные ограничения (например, проверка клиента, проверка сервера) на разрешенные цели, для которых может быть использован открытый ключ. Это может быть строка, разделенная запятыми, или список YAML. псевдонимы: extKeyUsage, extendedKeyUsage | |
| extended_key_usage_critical | Должен ли расширенный параметр extKeyUsage считаться критическим псевдонимы: extKeyUsage_critical, extendedKeyUsage_critical | |
| force bool |
| Запрашивается ли перегенерация запроса на подпись сертификата (CSR) этим модулем Ansible. |
| group | Имя группы, которой должен принадлежать файл/каталог (для chown). | |
| key_usage | Определяет назначение (например, шифрование, подпись, подпись сертификата) ключа, содержащегося в сертификате. Это может быть строка, разделенная запятыми, или список YAML. псевдонимы: keyUsage | |
| key_usage_critical | Должен ли расширенный параметр keyUsage считаться критическим псевдонимы: keyUsage_critical | |
| locality_name | Поле localityName в запросе на подпись сертификата (CSR). псевдонимы: L, localityName | |
| mode | Режим файла или каталога. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо указать ведущий ноль, чтобы парсер YAML Ansible понял, что это восьмеричное число (например, 0644 или 01777) или заключить его в кавычки (например, '644' или '0644'), чтобы 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 в запросе на подпись сертификата (CSR). псевдонимы: O, organizationName | |
| organizational_unit_name | Поле organizationalUnitName в запросе на подпись сертификата (CSR). псевдонимы: 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 |
| Указывает, должен ли запрос на подпись сертификата (CSR) существовать, выполняя действия, если состояние отличается от указанного. |
| state_or_province_name | Поле stateOrProvinceName в запросе на подпись сертификата (CSR). псевдонимы: ST, stateOrProvinceName | |
| subject (добавлен в 2.5) | Ключевые/значимые пары, которые будут присутствовать в поле имени субъекта запроса на подпись сертификата. Если нужно указать более одного значения с одинаковым ключом, используйте список в качестве значения. | |
| subject_alt_name | Расширение SAN для добавления к запросу на подпись сертификата. Это может быть строка, разделенная запятыми, или список YAML. Значения должны быть префиксными соответствующими параметрами. (например, email, URI, DNS, RID, IP, dirName, otherName и те, которые специфичны для вашего центра сертификации).псевдонимы: subjectAltName | |
| subject_alt_name_critical | Должен ли расширенный параметр subjectAltName считаться критическим псевдонимы: subjectAltName_critical | |
| unsafe_writes bool (добавлен в 2.2) |
| Обычно этот модуль использует атомарные операции, чтобы предотвратить повреждение данных или несогласованные чтения из целевых файлов. Иногда системы настроены или просто неисправны таким образом, что это предотвращается. Одним из примеров являются файлы, смонтированные с помощью docker; они не могут быть обновлены атомарно и могут быть обновлены только небезопасным способом. Этот параметр bool позволяет Ansible перейти к небезопасным методам обновления файлов в тех случаях, когда нет другого выбора. Имейте в виду, что это подвержено гонкам и может привести к повреждению данных. |
| version | Значение по умолчанию: 1 | Версия запроса на подпись сертификата. |
Примечания
Примечание
- Если запрос на подпись сертификата (CSR) уже существует, будет проверено, содержат ли 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'
# 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:TRUE', 'pathLenConstraint:0'] |
| extendedKeyUsage список | изменённое или успешно | Дополнительное ограничение на назначение открытого ключа Пример: ['clientAuth'] |
| filename строка | изменённое или успешно | Путь к сгенерированному запросу на подпись сертификата Пример: /etc/ssl/csr/www.ansible.com.csr |
| keyUsage список | изменённое или успешно | Назначение, для которого может использоваться открытый ключ Пример: ['digitalSignature', 'keyAgreement'] |
| ocsp_must_staple логическое | изменённое или успешно | Указывает, включена ли функция OCSP Must Staple для сертификата |
| privatekey строка | изменённое или успешно | Путь к закрытому ключу TLS/SSL, для которого был сгенерирован запрос Пример: /etc/ssl/private/ansible.com.pem |
| subject список | изменённое или успешно | Список кортежей субъекта, прикреплённых к запросу Пример: [('CN', 'www.ansible.com'), ('O', 'Ansible')] |
| subjectAltName список | изменённое или успешно | Альтернативные имена, для которых действителен этот запрос Пример: ['DNS:www.ansible.com', 'DNS:m.ansible.com'] |
Статус
Этот модуль помечен как экспериментальный, что означает, что его интерфейс не гарантируется как обратимо совместимый.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. См. Техническое обслуживание и поддержка модулей для получения дополнительной информации.
Список других модулей, также поддерживаемых сообществом 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.6/modules/openssl_csr_module.html