Spec-Zone.ru › Ansible 2.10

community.crypto.x509_certificate_pipe – Генерация и/или проверка сертификатов OpenSSL

Примечание

Этот плагин входит в коллекцию community.crypto (версия 1.3.0).

Для его установки используйте: ansible-galaxy collection install community.crypto.

Для использования в книге задач укажите: community.crypto.x509_certificate_pipe.

Новое в версии 1.3.0: of community.crypto

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Значения возврата

Обзор

  • Если доступны библиотеки cryptography и PyOpenSSL (и удовлетворяют минимальным требованиям к версии), cryptography будет предпочтительнее в качестве бэкэнда по сравнению с PyOpenSSL (если бэкэнд не принудительно установлен с помощью select_crypto_backend). Обратите внимание, что бэкэнд PyOpenSSL был устаревшим в Ansible 2.9 и будет удален в community.crypto 2.0.0.
  • Он реализует понятие поставщика (например, selfsigned, ownca, entrust) для вашего сертификата.
  • Он использует библиотеки pyOpenSSL или cryptography для взаимодействия с OpenSSL.
  • Обратите внимание, что модуль перегенерирует существующий сертификат, если он не соответствует параметрам модуля или, если он кажется повреждённым. Если вы опасаетесь, что это может перезаписать ваш существующий сертификат, рассмотрите использование опции backup.
  • Поставщик ownca предназначен для генерации сертификата OpenSSL, подписанного вашим собственным сертификатом CA (Certificate Authority) (самоподписанный сертификат).
  • Этот модуль позволяет (пере)генерировать сертификаты OpenSSL.

Требования

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

  • PyOpenSSL >= 0.15 или cryptography >= 1.6 (при использовании selfsigned, ownca или assertonly поставщика)

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
content
строка
Существующий сертификат.
csr_content
строка
Содержимое запроса на подписание сертификата (CSR), используемого для генерации этого сертификата.
Взаимоисключительно с csr_path.
csr_path
путь
Путь к файлу запроса на подписание сертификата (CSR), используемого для генерации этого сертификата.
Взаимоисключительно с csr_content.
entrust_api_client_cert_key_path
путь
Путь к закрытому ключу сертификата клиента, используемого для аутентификации в API Entrust Certificate Services (ECS).
Используется только поставщиком entrust.
Требуется, если поставщик entrust.
entrust_api_client_cert_path
путь
Путь к сертификату клиента, используемому для аутентификации в API Entrust Certificate Services (ECS).
Используется только поставщиком entrust.
Требуется, если поставщик entrust.
entrust_api_key
строка
Ключ (пароль) для аутентификации в API Entrust Certificate Services (ECS).
Используется только поставщиком entrust.
Требуется, если поставщик entrust.
entrust_api_specification_path
путь
По умолчанию:
"https://cloud.entrust.net/EntrustCloud/documentation/cms-api-2.1.0.yaml"
Путь к файлу спецификации, определяющему конфигурацию API Entrust Certificate Services (ECS).
Позволяет хранить локальную копию спецификации, чтобы избежать загрузки каждый раз при использовании модуля.
Используется только поставщиком entrust.
entrust_api_user
строка
Имя пользователя для аутентификации в API Entrust Certificate Services (ECS).
Используется только поставщиком entrust.
Требуется, если поставщик entrust.
entrust_cert_type
строка
    Варианты:
  • STANDARD_SSL ←
  • ADVANTAGE_SSL
  • UC_SSL
  • EV_SSL
  • WILDCARD_SSL
  • PRIVATE_SSL
  • PD_SSL
  • CDS_ENT_LITE
  • CDS_ENT_PRO
  • SMIME_ENT
Укажите тип запрашиваемого сертификата.
Используется только поставщиком entrust.
entrust_not_after
строка
По умолчанию:
"+365d"
Дата, до которой сертификат будет действителен.
Время может быть указано как относительно текущей даты, так и как абсолютная метка времени.
Формат абсолютной метки времени ASN.1 TIME, например 2019-06-18.
Формат относительного времени [+-]timespec, где timespec может быть целым числом + [w | d | h | m | s], например +365d или +32w1d2h.
Время всегда интерпретируется как UTC.
Обратите внимание, что для указания даты окончания действия выпущенного сертификата поддерживается только дата (день, месяц, год).
Полная дата и время корректируются до EST (GMT -5:00) перед выдачей, что может привести к сертификату с датой окончания действия на один день раньше ожидаемой, если используется относительное время.
Минимальный срок действия сертификата составляет 90 дней, максимальный — три года.
Если это значение не указано, сертификат перестанет быть действительным через 365 дней с даты выдачи.
Используется только поставщиком entrust.
entrust_requester_email
строка
Электронная почта запрашивающего сертификат (для отслеживания).
Используется только поставщиком entrust.
Требуется, если поставщик entrust.
entrust_requester_name
строка
Имя запрашивающего сертификат (для отслеживания).
Используется только поставщиком entrust.
Требуется, если поставщик entrust.
entrust_requester_phone
строка
Номер телефона запрашивающего сертификат (для отслеживания).
Используется только поставщиком entrust.
Требуется, если поставщик entrust.
force
логическое значение
    Варианты:
  • no ←
  • yes
Сгенерировать сертификат, даже если он уже существует.
ownca_content
строка
Содержимое сертификата CA (Удостоверяющего центра).
Используется только поставщиком ownca.
Взаимоисключительно с ownca_path.
ownca_create_authority_key_identifier
логическое значение
    Варианты:
  • no
  • yes ←
Создать идентификатор ключа авторитета из сертификата CA. Если в CSR был предоставлен идентификатор ключа авторитета, он игнорируется.
Идентификатор ключа авторитета генерируется из идентификатора ключевого субъекта сертификата CA (если доступен). Если он недоступен, используется открытый ключ сертификата CA.
Используется только поставщиком ownca.
Обратите внимание, что эта функция поддерживается только с бэкендом cryptography!
ownca_create_subject_key_identifier
строка
    Варианты:
  • create_if_not_provided ←
  • always_create
  • never_create
Создавать ли идентификатор ключа субъекта (SKI) из открытого ключа.
Значение create_if_not_provided (по умолчанию) создает SKI только если он не предоставлен в CSR.
Значение always_create всегда создает SKI. Если в CSR есть SKI, он игнорируется.
Значение never_create никогда не создает SKI. Если в CSR есть SKI, он используется.
Используется только поставщиком ownca.
Обратите внимание, что эта функция поддерживается только с бэкендом cryptography!
ownca_digest
строка
По умолчанию:
"sha256"
Алгоритм хэширования для сертификата ownca.
Используется только поставщиком ownca.
ownca_not_after
строка
По умолчанию:
"+3650d"
Дата окончания действия сертификата.
Время может быть указано относительно текущей даты или как абсолютная метка времени.
Время всегда интерпретируется как UTC.
Формат: [+-]timespec | ASN.1 TIME, где timespec — целое число + [w | d | h | m | s], например +32w1d2h.
Обратите внимание, что при использовании относительного времени этот модуль НЕ идемпотентен.
Если это значение не указано, сертификат будет действовать 10 лет с момента выдачи.
Используется только поставщиком ownca.
На macOS 10.15 и более поздних версиях сертификаты сервера TLS должны иметь срок действия не более 825 дней. Подробнее см. https://support.apple.com/en-us/HT210176.
ownca_not_before
строка
По умолчанию:
"+0s"
Дата начала действия сертификата.
Время может быть указано относительно текущей даты или как абсолютная метка времени.
Время всегда интерпретируется как UTC.
Формат: [+-]timespec | ASN.1 TIME, где timespec — целое число + [w | d | h | m | s], например +32w1d2h.
Обратите внимание, что при использовании относительного времени этот модуль НЕ идемпотентен.
Если это значение не указано, сертификат будет действовать с текущей даты.
Используется только поставщиком ownca.
ownca_path
путь
Путь к сертификату CA (Удостоверяющего центра).
Используется только поставщиком ownca.
Взаимоисключительно с ownca_content.
ownca_privatekey_content
строка
Содержимое закрытого ключа CA (Удостоверяющего центра) для подписи сертификата.
Используется только поставщиком ownca.
Взаимоисключительно с ownca_privatekey_path.
ownca_privatekey_passphrase
строка
Пароль к ownca_privatekey_path или ownca_privatekey_content.
Используется только поставщиком ownca.
ownca_privatekey_path
путь
Путь к закрытому ключу CA (Удостоверяющего центра) для подписи сертификата.
Используется только поставщиком ownca.
Взаимоисключительно с ownca_privatekey_content.
ownca_version
целое число
По умолчанию:
3
Версия сертификата ownca.
В настоящее время почти всегда 3.
Используется только поставщиком ownca.
privatekey_content
строка
Содержимое закрытого ключа для подписи сертификата.
Взаимоисключительно с privatekey_path.
privatekey_passphrase
строка
Пароль для privatekey_path или privatekey_content.
Требуется, если закрытый ключ защищён паролем.
privatekey_path
путь
Путь к закрытому ключу, используемому для подписания сертификата.
Взаимоисключающее с privatekey_content.
provider
строка / обязательно
    Варианты:
  • entrust
  • ownca
  • selfsigned
Имя поставщика для генерации/получения сертификата OpenSSL.
Для поставщика entrust требуются учетные данные для API Entrust Certificate Services (ECS).
select_crypto_backend
строка
    Варианты:
  • auto ←
  • cryptography
  • pyopenssl
Определяет используемый криптографический бэкенд.
По умолчанию выбран auto, который пытается использовать cryptography, если доступен, и переходит к pyopenssl.
Если установлено pyopenssl, будет использоваться библиотека pyOpenSSL.
Если установлено cryptography, будет использоваться библиотека cryptography.
Обратите внимание, что бэкенд pyopenssl устарел в Ansible 2.9 и будет удалён в community.crypto 2.0.0. С этого момента доступен только бэкенд cryptography.
selfsigned_create_subject_key_identifier
строка
    Варианты:
  • create_if_not_provided ←
  • always_create
  • never_create
Создавать ли идентификатор Subject Key Identifier (SKI) из открытого ключа.
Значение create_if_not_provided (по умолчанию) создаёт SKI только тогда, когда CSR его не предоставляет.
Значение always_create всегда создаёт SKI. Если CSR предоставляет SKI, он игнорируется.
Значение never_create никогда не создаёт SKI. Если CSR предоставляет SKI, он используется.
Используется только поставщиком selfsigned.
Обратите внимание, что это поддерживается только при использовании бэкенда cryptography.
selfsigned_digest
строка
По умолчанию:
"sha256"
Алгоритм хеширования, используемый при самоподписи сертификата.
Используется только поставщиком selfsigned.
selfsigned_not_after
строка
По умолчанию:
"+3650d"
Точка времени, после которой сертификат перестаёт быть действительным.
Время может быть указано либо как относительное время, либо как абсолютная временная метка.
Время всегда интерпретируется как UTC.
Допустимый формат [+-]timespec | ASN.1 TIME, где timespec может быть целым числом + [w | d | h | m | s] (например, +32w1d2h).
Обратите внимание, что при использовании относительного времени этот модуль НЕ идемпотентен.
Если это значение не указано, сертификат перестанет быть действительным через 10 лет.
Используется только поставщиком selfsigned.
На macOS 10.15 и новее сертификаты сервера TLS должны иметь срок действия не более 825 дней. Подробнее см. https://support.apple.com/en-us/HT210176.

псевдонимы: selfsigned_notAfter
selfsigned_not_before
строка
По умолчанию:
"+0s"
Точка времени, с которой сертификат является действительным.
Время может быть указано либо как относительное время, либо как абсолютная временная метка.
Время всегда интерпретируется как UTC.
Допустимый формат [+-]timespec | ASN.1 TIME, где timespec может быть целым числом + [w | d | h | m | s] (например, +32w1d2h).
Обратите внимание, что при использовании относительного времени этот модуль НЕ идемпотентен.
Если это значение не указано, сертификат начнёт действовать с текущего момента.
Используется только поставщиком selfsigned.

псевдонимы: selfsigned_notBefore
selfsigned_version
целое число
По умолчанию:
3
Версия сертификата selfsigned.
В наши дни это должно быть почти всегда 3.
Используется только поставщиком selfsigned.

Примечания

Примечание

  • Все значения ASN.1 TIME должны быть указаны в формате YYYYMMDDHHMMSSZ.
  • Указанная дата должна быть UTC. Минуты и секунды обязательны.
  • По соображениям безопасности, при использовании поставщика ownca не следует запускать community.crypto.x509_certificate на целевой машине, а на отдельной машине CA. Рекомендуется не хранить закрытый ключ CA на целевой машине. После подписания сертификат можно перенести на целевую машину.
  • Для поставщика selfsigned, csr_path и csr_content необязательны. Если они не указаны, создаётся сертификат без какой-либо информации (Subject, Subject Alternative Names, Key Usage и т. д.).

См. также

См. также

community.crypto.x509_certificate

Официальная документация по модулю community.crypto.x509_certificate.

community.crypto.openssl_csr

Официальная документация по модулю community.crypto.openssl_csr.

community.crypto.openssl_csr_pipe

Официальная документация по модулю community.crypto.openssl_csr_pipe.

community.crypto.openssl_dhparam

Официальная документация по модулю community.crypto.openssl_dhparam.

community.crypto.openssl_pkcs12

Официальная документация по модулю community.crypto.openssl_pkcs12.

community.crypto.openssl_privatekey

Официальная документация по модулю community.crypto.openssl_privatekey.

community.crypto.openssl_privatekey_pipe

Официальная документация по модулю community.crypto.openssl_privatekey_pipe.

community.crypto.openssl_publickey

Официальная документация по модулю community.crypto.openssl_publickey.

Примеры

- name: Generate a Self Signed OpenSSL certificate
  community.crypto.x509_certificate_pipe:
    provider: selfsigned
    privatekey_path: /etc/ssl/private/ansible.com.pem
    csr_path: /etc/ssl/csr/ansible.com.csr
  register: result
- ansible.builtin.debug:
    var: result.certificate

# In the following example, both CSR and certificate file are stored on the
# machine where ansible-playbook is executed, while the OwnCA data (certificate,
# private key) are stored on the remote machine.

- name: (1/2) Generate an OpenSSL Certificate with the CSR provided inline
  community.crypto.x509_certificate_pipe:
    provider: ownca
    content: "{{ lookup('file', '/etc/ssl/csr/www.ansible.com.crt') }}"
    csr_content: "{{ lookup('file', '/etc/ssl/csr/www.ansible.com.csr') }}"
    ownca_cert: /path/to/ca_cert.crt
    ownca_privatekey: /path/to/ca_cert.key
    ownca_privatekey_passphrase: hunter2
  register: result

- name: (2/2) Store certificate
  ansible.builtin.copy:
    dest: /etc/ssl/csr/www.ansible.com.crt
    content: "{{ result.certificate }}"
  delegate_to: localhost
  when: result is changed

# In the following example, the certificate from another machine is signed by
# our OwnCA whose private key and certificate are only available on this
# machine (where ansible-playbook is executed), without having to write
# the certificate file to disk on localhost. The CSR could have been
# provided by community.crypto.openssl_csr_pipe earlier, or also have been
# read from the remote machine.

- name: (1/3) Read certificate's contents from remote machine
  ansible.builtin.slurp:
    src: /etc/ssl/csr/www.ansible.com.crt
  register: certificate_content

- name: (2/3) Generate an OpenSSL Certificate with the CSR provided inline
  community.crypto.x509_certificate_pipe:
    provider: ownca
    content: "{{ certificate_content.content | b64decode }}"
    csr_content: "{{ the_csr }}"
    ownca_cert: /path/to/ca_cert.crt
    ownca_privatekey: /path/to/ca_cert.key
    ownca_privatekey_passphrase: hunter2
  delegate_to: localhost
  register: result

- name: (3/3) Store certificate
  ansible.builtin.copy:
    dest: /etc/ssl/csr/www.ansible.com.crt
    content: "{{ result.certificate }}"
  when: result is changed

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

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

Ключ Возвращаемое значение Описание
certificate
строка
changed или success
Содержимое сертификата (текущего или сгенерированного).



Авторы

  • Yanis Guenane (@Spredzy)
  • Markus Teufelberger (@MarkusTeufelberger)
  • Felix Fontein (@felixfontein)

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/crypto/x509_certificate_pipe_module.html

Spec-Zone.ru

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