Spec-Zone.ru › Ansible

Модуль community.crypto.x509_certificate_pipe — Генерация и/или проверка сертификатов OpenSSL

Примечание

Этот модуль является частью коллекции community.crypto (версия 2.22.1).

Эта коллекция может быть уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.crypto. Для использования этого модуля необходимы дополнительные требования. Подробнее см. Требования.

Чтобы использовать его в книге задач, укажите: community.crypto.x509_certificate_pipe.

Добавлен в community.crypto 1.3.0

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

Описание

  • Реализует понятие поставщика (один из selfsigned, ownca, entrust) для вашего сертификата.
  • Использует библиотеку cryptography python для взаимодействия с OpenSSL.
  • Поставщик ownca предназначен для генерации сертификата OpenSSL, подписанного вашим собственным сертификатом CA (Центр сертификации) (самоподписанный сертификат).
  • Этот модуль позволяет (снова) генерировать сертификаты OpenSSL.

Требования

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

  • cryptography >= 1.6 (если используется поставщик selfsigned или ownca)

Параметры

Параметр

Комментарии

content

string

Существующий сертификат.

csr_content

string

Содержимое запроса на подпись сертификата (CSR), используемого для генерации этого сертификата.

Взаимоисключающий параметр с csr_path.

csr_path

path

Путь к запросу на подпись сертификата (CSR), используемому для генерации этого сертификата.

Взаимоисключающий параметр с csr_content.

entrust_api_client_cert_key_path

path

Путь к закрытому ключу клиентского сертификата, используемого для аутентификации в API Entrust Certificate Services (ECS).

Используется только провайдером entrust.

Обязательный параметр, если провайдер — entrust.

entrust_api_client_cert_path

path

Путь к клиентскому сертификату, используемому для аутентификации в API Entrust Certificate Services (ECS).

Используется только провайдером entrust.

Обязательный параметр, если провайдер — entrust.

entrust_api_key

string

Ключ (пароль) для аутентификации в API Entrust Certificate Services (ECS).

Используется только провайдером entrust.

Обязательный параметр, если провайдер — entrust.

entrust_api_specification_path

path

Путь к файлу спецификации, определяющему конфигурацию API Entrust Certificate Services (ECS).

Можно использовать его для хранения локальной копии спецификации, чтобы избежать её загрузки каждый раз при использовании модуля.

Используется только провайдером entrust.

Значение по умолчанию: "https://cloud.entrust.net/EntrustCloud/documentation/cms-api-2.1.0.yaml"

entrust_api_user

string

Имя пользователя для аутентификации в API Entrust Certificate Services (ECS).

Используется только провайдером entrust.

Обязательный параметр, если провайдер — entrust.

entrust_cert_type

string

Указывает тип запрашиваемого сертификата.

Используется только провайдером entrust.

Варианты:

  • "STANDARD_SSL" ← (по умолчанию)
  • "ADVANTAGE_SSL"
  • "UC_SSL"
  • "EV_SSL"
  • "WILDCARD_SSL"
  • "PRIVATE_SSL"
  • "PD_SSL"
  • "CDS_ENT_LITE"
  • "CDS_ENT_PRO"
  • "SMIME_ENT"

entrust_not_after

string

Момент времени, когда сертификат перестаёт быть действительным.

Время может быть указано как относительное время или как абсолютная метка времени.

Формат абсолютного времени: ASN.1 TIME, например 2019-06-18.

Формат относительного времени: [+-]timespec, где timespec может быть целым числом + [w | d | h | m | s], например +365d или +32w1d2h).

Время всегда интерпретируется как UTC.

Обратите внимание, что для указания даты истечения срока действия выпущенного сертификата поддерживается только дата (день, месяц, год).

Полная дата и время корректируются до EST (GMT -5:00) перед выдачей, что может привести к сертификату со сроком действия на один день раньше, чем ожидалось, если используется относительное время.

Минимальный срок действия сертификата составляет 90 дней, а максимальный — три года.

Если это значение не указано, сертификат перестанет быть действительным через 365 дней с даты выпуска.

Используется только провайдером entrust.

Обратите внимание, что это значение не охватывается параметром ignore_timestamps.

Значение по умолчанию: "+365d"

entrust_requester_email

string

Электронная почта лица, запросившего сертификат (для целей отслеживания).

Используется только провайдером entrust.

Обязательный параметр, если провайдер — entrust.

entrust_requester_name

string

Имя лица, запросившего сертификат (для целей отслеживания).

Используется только провайдером entrust.

Обязательный параметр, если провайдер — entrust.

entrust_requester_phone

string

Номер телефона лица, запросившего сертификат (для целей отслеживания).

Используется только провайдером entrust.

Обязательный параметр, если провайдер — entrust.

force

boolean

Сгенерировать сертификат, даже если он уже существует.

Варианты:

  • false ← (по умолчанию)
  • true

ignore_timestamps

boolean

добавлено в community.crypto 2.0.0

Следует ли игнорировать метки времени «not before» и «not after» для проверок идемпотентности.

Лучше сохранить значение по умолчанию true при использовании относительных меток времени (например, +0s на данный момент).

Варианты:

  • false
  • true ← (по умолчанию)

ownca_content

string

Содержимое сертификата центра сертификации (CA).

Используется только провайдером ownca.

Взаимоисключающий параметр с ownca_path.

ownca_create_authority_key_identifier

boolean

Создать идентификатор ключа центра сертификации из сертификата ЦС. Если запрос на подпись сертификата (CSR) предоставил идентификатор ключа центра сертификации, он игнорируется.

Идентификатор ключа центра сертификации создается из идентификатора субъектного ключа сертификата ЦС, если доступен. Если он недоступен, будет использоваться открытый ключ сертификата ЦС.

Это используется только поставщиком ownca.

Обратите внимание, что это поддерживается только в случае использования бэкэнда cryptography!

Варианты:

  • false
  • true ← (значение по умолчанию)

ownca_create_subject_key_identifier

string

Создавать ли идентификатор субъектного ключа (SKI) из открытого ключа.

Значение create_if_not_provided (по умолчанию) создает SKI только тогда, когда CSR не предоставляет его.

Значение always_create всегда создает SKI. Если CSR предоставляет его, он игнорируется.

Значение never_create никогда не создает SKI. Если CSR предоставляет его, он используется.

Это используется только поставщиком ownca.

Обратите внимание, что это поддерживается только в случае использования бэкэнда cryptography!

Варианты:

  • "create_if_not_provided" ← (значение по умолчанию)
  • "always_create"
  • "never_create"

ownca_digest

string

Алгоритм дайджеста, который будет использоваться для сертификата ownca.

Это используется только поставщиком ownca.

Значение по умолчанию: "sha256"

ownca_not_after

string

Момент времени, когда сертификат перестает быть действительным.

Время может быть указано как относительное время или как абсолютное значение метки времени.

Время всегда интерпретируется как UTC.

Допустимый формат - [+-]timespec | ASN.1 TIME где timespec может быть целым числом + [w | d | h | m | s] (например, +32w1d2h).

Если это значение не указано, сертификат перестанет быть действительным через 10 лет.

Обратите внимание, что это значение не используется для определения того, следует ли повторно генерировать существующий сертификат. Это можно изменить, установив параметр ignore_timestamps в false. Обратите внимание, что следует избегать относительных меток времени при установке ignore_timestamps=false.

Это используется только поставщиком ownca.

В macOS 10.15 и более поздних версиях серверные сертификаты TLS должны иметь срок действия 825 дней или меньше. Более подробную информацию см. по адресу https://support.apple.com/en-us/HT210176.

Значение по умолчанию: "+3650d"

ownca_not_before

string

Момент времени, с которого сертификат действителен.

Время может быть указано как относительное время или как абсолютное значение метки времени.

Время всегда интерпретируется как UTC.

Допустимый формат - [+-]timespec | ASN.1 TIME где timespec может быть целым числом + [w | d | h | m | s] (например, +32w1d2h).

Если это значение не указано, сертификат станет действительным с текущего момента.

Обратите внимание, что это значение не используется для определения того, следует ли повторно генерировать существующий сертификат. Это можно изменить, установив параметр ignore_timestamps в false. Обратите внимание, что следует избегать относительных меток времени при установке ignore_timestamps=false.

Это используется только поставщиком ownca.

Значение по умолчанию: "+0s"

ownca_path

path

Удаленный абсолютный путь к сертификату центра сертификации (ЦС).

Это используется только поставщиком ownca.

Взаимоисключающий параметр с ownca_content.

ownca_privatekey_content

string

Содержимое закрытого ключа центра сертификации (ЦС), который будет использоваться при подписании сертификата.

Это используется только поставщиком ownca.

Взаимоисключающий параметр с ownca_privatekey_path.

ownca_privatekey_passphrase

string

Пароль для ownca_privatekey_path или ownca_privatekey_content.

Это используется только поставщиком ownca.

ownca_privatekey_path

path

Путь к закрытому ключу центра сертификации (ЦС), который будет использоваться при подписании сертификата.

Это используется только поставщиком ownca.

Взаимоисключающий параметр с ownca_privatekey_content.

ownca_version

integer

Версия сертификата ownca.

В настоящее время это почти всегда должно быть 3.

Это используется только поставщиком ownca.

Значение по умолчанию: 3

privatekey_content

string

Содержимое закрытого ключа, который будет использоваться при подписании сертификата.

Взаимоисключающий параметр с privatekey_path.

privatekey_passphrase

string

Пароль для privatekey_path или privatekey_content.

Требуется, если закрытый ключ защищен паролем.

privatekey_path

path

Путь к закрытому ключу, который будет использоваться при подписании сертификата.

Взаимоисключающий параметр с privatekey_content.

provider

string / required

Имя поставщика, который будет использоваться для генерации/извлечения сертификата OpenSSL.

Поставщик entrust требует учетные данные для API Entrust Certificate Services (ECS).

Варианты:

  • "entrust"
  • "ownca"
  • "selfsigned"

select_crypto_backend

string

Определяет, какой криптографический бэкенд использовать.

По умолчанию используется auto, который пытается использовать cryptography если доступен.

Если установлено значение cryptography, будет попытка использования библиотеки cryptography.

Варианты:

  • "auto" ← (по умолчанию)
  • "cryptography"

selfsigned_create_subject_key_identifier

string

Указывает, создавать ли Subject Key Identifier (SKI) из открытого ключа.

Значение create_if_not_provided (по умолчанию) создаёт SKI только если CSR его не предоставляет.

Значение always_create всегда создаёт SKI. Если CSR предоставляет SKI, он игнорируется.

Значение never_create никогда не создаёт SKI. Если CSR предоставляет SKI, он используется.

Используется только поставщиком selfsigned.

Обратите внимание, что это поддерживается только если используется бэкенд cryptography!

Варианты:

  • "create_if_not_provided" ← (по умолчанию)
  • "always_create"
  • "never_create"

selfsigned_digest

string

Алгоритм дайджеста, используемый при самоподписи сертификата.

Используется только поставщиком selfsigned.

По умолчанию: "sha256"

selfsigned_not_after

aliases: selfsigned_notAfter

string

Время прекращения действия сертификата.

Время может быть указано как относительно, так и как абсолютная метка времени.

Время всегда интерпретируется как UTC.

Допустимый формат: [+-]timespec | ASN.1 TIME, где timespec может быть целым числом + [w | d | h | m | s] (например, +32w1d2h).

Если значение не указано, сертификат перестаёт действовать через 10 лет.

Обратите внимание, что это значение не используется для определения необходимости перегенерации существующего сертификата. Это можно изменить, установив опцию ignore_timestamps в false. Обратите внимание, что следует избегать относительных временных меток при настройке ignore_timestamps=false.

Используется только поставщиком selfsigned.

На macOS 10.15 и новее сертификаты сервера TLS должны иметь срок действия не более 825 дней. Подробнее см. https://support.apple.com/en-us/HT210176.

По умолчанию: "+3650d"

selfsigned_not_before

aliases: selfsigned_notBefore

string

Время начала действия сертификата.

Время может быть указано как относительно, так и как абсолютная метка времени.

Время всегда интерпретируется как UTC.

Допустимый формат: [+-]timespec | ASN.1 TIME, где timespec может быть целым числом + [w | d | h | m | s] (например, +32w1d2h).

Если значение не указано, сертификат начинает действовать с текущего момента.

Обратите внимание, что это значение не используется для определения необходимости перегенерации существующего сертификата. Это можно изменить, установив опцию ignore_timestamps в false. Обратите внимание, что следует избегать относительных временных меток при настройке ignore_timestamps=false.

Используется только поставщиком selfsigned.

По умолчанию: "+0s"

selfsigned_version

integer

Версия сертификата selfsigned.

В настоящее время почти всегда должна быть 3.

Используется только поставщиком selfsigned.

По умолчанию: 3

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

В режиме проверки, приватные ключи не будут (пере)генерированы, будет установлено только значение изменения. Это изменится в community.crypto 3.0.0.

Начиная с community.crypto 3.0.0, модуль будет игнорировать режим проверки и всегда вести себя так, как если бы режим проверки был неактивен. Если вы считаете, что это нарушает ваш случай использования данного модуля, создайте проблему в репозитории community.crypto.

Может работать в режиме проверки и возвращать предсказание изменённого состояния без модификации целевого объекта.

diff_mode

Поддержка: полная

Возвращает подробности о том, что изменилось (или, возможно, требует изменения в check_mode) при использовании режима сравнения.

Примечания

Примечание

  • Все значения 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

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

community.crypto.openssl_csr

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

community.crypto.openssl_csr_pipe

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

community.crypto.openssl_dhparam

Генерация параметров Diffie-Hellman OpenSSL.

community.crypto.openssl_pkcs12

Генерация архива OpenSSL PKCS#12.

community.crypto.openssl_privatekey

Генерация закрытых ключей OpenSSL.

community.crypto.openssl_privatekey_pipe

Генерация закрытых ключей OpenSSL без доступа к диску.

community.crypto.openssl_publickey

Генерация открытого ключа OpenSSL из закрытого ключа.

Примеры

- 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
- name: Print the certificate
  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('ansible.builtin.file', '/etc/ssl/csr/www.ansible.com.crt') }}"
    csr_content: "{{ lookup('ansible.builtin.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)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (источники)
  • Задать вопрос (crypto)
  • Задать вопрос (ACME)
  • Отправить отчет об ошибке
  • Запросить функцию
  • Общение

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

Spec-Zone.ru

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