Spec-Zone.ru › Ansible 2.8

openssl_csr – Генерация запроса на подпись сертификата OpenSSL (CSR)

Новая версия 2.4.

  • Описание
  • Требования
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения
  • Статус

Описание

  • Этот модуль позволяет (снова) сгенерировать запрос на подпись сертификата OpenSSL.
  • Он использует библиотеку pyOpenSSL для взаимодействия с openssl. Этот модуль поддерживает расширения subjectAltName, keyUsage, extendedKeyUsage, basicConstraints и OCSP Must Staple.
  • Обратите внимание, что модуль перегенерирует существующий CSR, если он не соответствует параметрам модуля или если он кажется повреждённым. Если вы обеспокоены тем, что это может перезаписать ваш существующий CSR, рассмотрите использование параметра backup.

Требования

Ниже приведены требования к хосту, на котором будет выполняться этот модуль.

  • Библиотека cryptography >= 1.3
  • Или pyOpenSSL >= 0.15

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
attributes
строка
добавлен в 2.3
Атрибуты, которые должен иметь результирующий файл или директория.
Для получения поддерживаемых флагов см. страницу справки для chattr на целевой системе.
Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr.
Оператор = предполагается по умолчанию, в противном случае операторы + или - необходимо включить в строку.

псевдонимы: attr
backup
булево
добавлен в 2.8
    Варианты:
  • нет ←
  • да
Создать резервную копию файла, включая отметку времени, чтобы вы могли восстановить исходный CSR, если случайно перезаписали его новым.
basic_constraints
список
добавлен в 2.5
Указывает базовые ограничения, например, является ли сертификат центром сертификации.

псевдонимы: 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
список
Дополнительные ограничения (например, проверка подлинности клиента, проверка подлинности сервера) на разрешенные цели, для которых может использоваться открытый ключ.

псевдонимы: extKeyUsage, extendedKeyUsage
extended_key_usage_critical
булево
    Варианты:
  • нет
  • да
Должно ли расширение extkeyUsage рассматриваться как критическое.

псевдонимы: extKeyUsage_critical, extendedKeyUsage_critical
force
булево
    Варианты:
  • нет ←
  • да
Нужно ли принудительно перегенерировать запрос на подписание сертификата этим модулем Ansible.
group
строка
Имя группы, которая должна владеть файлом/директорией, как в chown.
key_usage
список
Определяет назначение (например, шифрование, подпись, подписание сертификатов) ключа, содержащегося в сертификате.

псевдонимы: keyUsage
key_usage_critical
булево
    Варианты:
  • нет
  • да
Должен ли расширение keyUsage рассматриваться как критическое.

псевдонимы: keyUsage_critical
locality_name
строка
Поле localityName в запросе на подписание сертификата.

псевдонимы: L, localityName
mode
строка
Разрешения, которые должен иметь результирующий файл или директория.
Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую ноль, чтобы Ansible's YAML parser знал, что это восьмеричное число (как 0644 или 01777) или заключить его в кавычки (как '644' или '1777') так Ansible получит строку и сможет самостоятельно преобразовать строку в число.
Передача 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
путь
Путь к закрытому ключу, который необходимо использовать при подписании запроса на подписание сертификата.
Обязательно, если state равно present.
select_crypto_backend
строка
добавлен в 2.8
    Варианты:
  • авто ←
  • cryptography
  • pyopenssl
Определяет, какой криптографический бэкенд использовать.
Значение по умолчанию auto, которое пытается использовать cryptography, если оно доступно, и переходит к pyopenssl.
Если установлено значение pyopenssl, будет использована библиотека pyOpenSSL.
Если установлено значение cryptography, будет использована библиотека cryptography.
selevel
строка
Значение по умолчанию:
"s0"
Часть контекста файла SELinux.
Это атрибут MLS/MCS, иногда известный как range.
Когда установлено _default, используется часть политики level, если она доступна.
serole
строка
Часть контекста файла SELinux.
Когда установлено _default, используется часть политики role, если она доступна.
setype
string
Часть контекста файла SELinux, относящаяся к типу.
Если установлено значение _default, будет использоваться соответствующая часть политики type, если она доступна.
seuser
string
Часть контекста файла SELinux, относящаяся к пользователю.
По умолчанию используется политика system, если применимо.
Если установлено значение _default, будет использоваться соответствующая часть политики user, если она доступна.
state
string
    Варианты:
  • absent
  • present ←
Указывает, должен ли запрос на подписание сертификата существовать или нет, выполняя действия, если состояние отличается от указанного.
state_or_province_name
string
Поле stateOrProvinceName в субъекте запроса на подписание сертификата.

Псевдонимы: ST, stateOrProvinceName
subject
dictionary
Добавлен в 2.5
Ключевые пары, которые будут присутствовать в поле имени субъекта запроса на подписание сертификата.
Если нужно указать более одного значения с одинаковым ключом, используйте список в качестве значения.
subject_alt_name
list
Расширение SAN для добавления к запросу на подписание сертификата.
Это может быть либо строка, разделенная запятыми, либо список YAML.
Значения должны иметь префиксы своих параметров. (например, email, URI, DNS, RID, IP, dirName, otherName и те, которые специфичны для вашей ЦС)
Обратите внимание, что если SAN не указан, но указано общее имя, общее имя будет добавлено как SAN, если только useCommonNameForSAN не установлено в false.
Подробнее см. https://tools.ietf.org/html/rfc5280#section-4.2.1.6.

Псевдонимы: subjectAltName
subject_alt_name_critical
boolean
    Варианты:
  • no
  • yes
Должно ли расширение subjectAltName рассматриваться как критически важное.

Псевдонимы: subjectAltName_critical
unsafe_writes
boolean
Добавлен в 2.2
    Варианты:
  • no ←
  • yes
Влияет на то, когда следует использовать атомную операцию для предотвращения повреждения данных или несогласованных чтений из целевого файла.
По умолчанию этот модуль использует атомные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто не работают таким образом, что это не позволяет. Одним из примеров являются файлы, смонтированные в Docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом.
Этот параметр позволяет Ansible переходить к небезопасным методам обновления файлов при сбое атомных операций (однако он не заставляет Ansible выполнять небезопасные записи).
ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных.
use_common_name_for_san
boolean
Добавлен в 2.8
    Варианты:
  • no
  • yes ←
Если установлено значение yes, модуль заполнит общее имя для subject_alt_name префиксом DNS:, если SAN не указан.

Псевдонимы: useCommonNameForSAN
version
integer
По умолчанию:
1
Версия запроса на подписание сертификата.
Единственное разрешенное значение в соответствии с RFC 2986 — 1.

Примечания

Примечание

  • Если запрос на подписание сертификата уже существует, проверяется, содержат ли subjectAltName, keyUsage, extendedKeyUsage и basicConstraints только запрошенные значения, соответствует ли OCSP Must Staple запрошенному значению и был ли запрос подписан заданным закрытым ключом.

См. также

См. также

openssl_certificate — Генерация и проверка сертификатов OpenSSL
Официальная документация по модулю openssl_certificate.
openssl_dhparam — Генерация параметров Diffie-Hellman OpenSSL
Официальная документация по модулю openssl_dhparam.
openssl_pkcs12 — Генерация архива OpenSSL PKCS#12
Официальная документация по модулю openssl_pkcs12.
openssl_privatekey — Генерация закрытых ключей OpenSSL
Официальная документация по модулю openssl_privatekey.
openssl_publickey — Генерация открытого ключа OpenSSL из его закрытого ключа
Официальная документация по модулю openssl_publickey.

Примеры

- name: 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

- name: 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

- name: 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

- name: 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'

- name: 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

- name: Force regenerate an OpenSSL Certificate Signing Request
  openssl_csr:
    path: /etc/ssl/csr/www.ansible.com.csr
    privatekey_path: /etc/ssl/private/ansible.com.pem
    force: yes
    common_name: www.ansible.com

- name: 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

- name: 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: yes

Возвращаемые значения

Общие возвращаемые значения описаны в здесь, следующие являются полями, уникальными для данного модуля:

Ключ Возвращаемое значение Описание
backup_file
string
changed и если backup — yes
Имя созданного файла резервной копии.

Пример:
/path/to/www.ansible.com.csr.2019-03-09@11:22~
basicConstraints
list
changed или success
Указывает, принадлежит ли сертификат ЦС

Пример:
['CA:TRUE', 'pathLenConstraint:0']
extendedKeyUsage
list
changed или success
Дополнительные ограничения на цели использования открытого ключа

Пример:
['clientAuth']
filename
string
changed или success
Путь к сгенерированному запросу на подписание сертификата

Пример:
/etc/ssl/csr/www.ansible.com.csr
keyUsage
list
changed или success
Цель использования открытого ключа

Пример:
['digitalSignature', 'keyAgreement']
ocsp_must_staple
boolean
changed или success
Указывает, включена ли функция OCSP Must Staple в сертификате

privatekey
string
changed или success
Путь к закрытому ключу TLS/SSL, для которого был сгенерирован запрос CSR

Пример:
/etc/ssl/private/ansible.com.pem
subject
list
changed или success
Список кортежей субъектов, прикрепленных к CSR

Пример:
[('CN', 'www.ansible.com'), ('O', 'Ansible')]
subjectAltName
list
changed или success
Альтернативные имена, для которых этот CSR действителен

Пример:
['DNS:www.ansible.com', 'DNS:m.ansible.com']


Статус

  • Интерфейс этого модуля не гарантируется как обратная совместимость. [preview]
  • Этот модуль поддерживается сообществом Ansible. [community]

Авторы

  • 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.8/modules/openssl_csr_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API