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) | Указывает базовые ограничения, такие как является ли сертификат центром сертификации. псевдонимы: basicConstraints | |
| basic_constraints_critical (добавлено в 2.5) | Должен ли расширение basicConstraints рассматриваться как критическое псевдонимы: basicConstraints_critical | |
| common_name | Поле commonName в запросе на подписание сертификата (subject) псевдонимы: CN, commonName | |
| country_name | Поле countryName в запросе на подписание сертификата (subject) псевдонимы: C, countryName | |
| digest | По умолчанию: sha256 | Хеш-функция, используемая при подписании запроса на подписание сертификата с помощью закрытого ключа |
| email_address | Поле emailAddress в запросе на подписание сертификата (subject) псевдонимы: E, emailAddress | |
| extended_key_usage | Дополнительные ограничения (например, проверка подлинности клиента, проверка подлинности сервера) на допустимые цели, для которых может использоваться открытый ключ. Это может быть либо строка со значениями, разделенными запятыми, либо список YAML. псевдонимы: extKeyUsage, extendedKeyUsage | |
| extended_key_usage_critical | Должен ли расширение extkeyUsage рассматриваться как критическое псевдонимы: extKeyUsage_critical, extendedKeyUsage_critical | |
| force |
нет | Запросить повторное создание запроса на подписание сертификата этим модулем Ansible |
| group | По умолчанию: Нет | Имя группы, которая должна владеть файлом/директорией, как это передается в команду chown. |
| key_usage | Определяет назначение (например, шифрование, цифровая подпись, подпись сертификата) ключа, содержащегося в сертификате. Это может быть либо строка со значениями, разделенными запятыми, либо список YAML. псевдонимы: keyUsage | |
| key_usage_critical | Должен ли расширение keyUsage рассматриваться как критическое псевдонимы: keyUsage_critical | |
| locality_name | Поле localityName в запросе на подписание сертификата (subject) псевдонимы: L, localityName | |
| mode | По умолчанию: Нет | Режим файла или директории. Для тех, кто знаком с командой /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами (например, 0644 или 01777). Опускание ведущего нуля может привести к непредвиденным результатам. Начиная с версии 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 в запросе на подписание сертификата (subject) псевдонимы: O, organizationName | |
| organizational_unit_name | Поле organizationalUnitName в запросе на подписание сертификата (subject) псевдонимы: 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 в запросе на подписание сертификата (subject) псевдонимы: ST, stateOrProvinceName | |
| subject (добавлено в 2.5) | Ключ/значение пары, которые будут присутствовать в поле имени субъекта запроса на подписание сертификата. Если вам нужно указать более одного значения с одним и тем же ключом, используйте список в качестве значения. | |
| subject_alt_name | Расширение SAN для добавления в запрос на подписание сертификата Это может быть либо строка со значениями, разделенными запятыми, либо список YAML. Значения должны быть с префиксом соответствующей опции (например, email, URI, DNS, RID, IP, dirName, otherName и те, которые специфичны для вашего ЦС).Подробнее на https://tools.ietf.org/html/rfc5280#section-4.2.1.6
псевдонимы: subjectAltName | |
| subject_alt_name_critical | Должен ли расширение subjectAltName рассматриваться как критическое псевдонимы: subjectAltName_critical | |
| unsafe_writes (добавлено в 2.2) |
| Обычно этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов. Иногда системы настроены или просто неисправны таким образом, что это невозможно. Один пример — файлы, смонтированные через Docker, они не могут быть обновлены атомарно и могут быть обновлены только небезопасным способом. Этот логический параметр позволяет 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'
# 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'] |
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантируется как обратная совместимость.
Автор
- 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.5/modules/openssl_csr_module.html