Spec-Zone.ru › Ansible

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

Примечание

Этот модуль входит в коллекцию community.crypto (версия 3.2.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) для вашего сертификата.
  • Для взаимодействия с OpenSSL использует библиотеку Python cryptography.
  • Поставщик ownca предназначен для создания сертификата OpenSSL, подписанного сертификатом вашего собственного центра сертификации (CA) (самоподписанного сертификата).
  • Этот модуль позволяет создавать и повторно создавать сертификаты OpenSSL.

Требования

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

  • cryptography >= 3.3 (при использовании поставщика selfsigned или ownca)

Параметры

Параметр

Комментарии

content

строка

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

csr_content

строка

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

Несовместим с csr_path.

csr_path

путь

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

Несовместим с csr_content.

force

логический

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

Варианты:

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

ignore_timestamps

логический

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

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

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

Варианты:

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

ownca_content

строка

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

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

Несовместим с ownca_path.

ownca_create_authority_key_identifier

логический

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

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

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

Варианты:

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

ownca_create_subject_key_identifier

строка

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

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

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

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

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

Варианты:

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

ownca_digest

строка

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

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

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

ownca_not_after

строка

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

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

Время всегда интерпретируется как 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

строка

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

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

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

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

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

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

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

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

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

целое число

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

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

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

Варианты:

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

privatekey_content

строка

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

Несовместим с privatekey_path.

privatekey_passphrase

строка

Парольная фраза для privatekey_path, соответственно privatekey_content.

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

privatekey_path

путь

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

Несовместим с privatekey_content.

provider

строка / обязательный

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

Поставщик entrust удалён из community.crypto 3.0.0 в связи с прекращением поддержки API ECS.

Варианты:

  • "ownca"
  • "selfsigned"

select_crypto_backend

строка

Определяет, какую криптографическую подсистему использовать.

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

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

Обратите внимание: в community.crypto 3.0.0 все значения работают одинаково. В последующих версиях этот параметр будет объявлен устаревшим. Рекомендуется не указывать его явно.

Варианты:

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

selfsigned_create_subject_key_identifier

строка

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

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

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

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

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

Варианты:

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

selfsigned_digest

строка

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

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

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

selfsigned_not_after

псевдонимы: selfsigned_notAfter

строка

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

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

Время всегда интерпретируется как 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

псевдонимы: selfsigned_notBefore

строка

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

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

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

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

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

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

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

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

selfsigned_version

целое число

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

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

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

Варианты:

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

Атрибуты

Атрибут

Поддержка

Описание

check_mode

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

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

Может выполняться в режиме check_mode и возвращать прогноз изменения состояния, не изменяя целевой объект.

diff_mode

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

В режиме diff возвращает сведения об изменениях (или о возможных изменениях в check_mode).

idempotent

Поддержка: частичная

При использовании относительных меток времени и ignore_timestamps=false модуль не является идемпотентным.

Параметр force=true в целом отключает идемпотентность.

При повторном запуске с теми же аргументами вне режима проверки второй запуск сообщает об отсутствии изменений.

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

Примечания

Примечание

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

См. также

См. также

community.crypto.x509_certificate

Создание и/или проверка сертификатов OpenSSL.

community.crypto.openssl_csr

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

community.crypto.openssl_csr_pipe

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

community.crypto.openssl_dhparam

Создание параметров Диффи — Хеллмана OpenSSL.

community.crypto.openssl_pkcs12

Создание архива PKCS#12 OpenSSL.

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

строка

Содержимое сертификата (текущего или сгенерированного).

Возвращается: при изменении или успешном выполнении

Авторы

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

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

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

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

Spec-Zone.ru

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