Spec-Zone.ru › Ansible

community.crypto.openssl_pkcs12 модуль — Генерация архива OpenSSL PKCS#12

Примечание

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

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

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

Чтобы использовать его в плейбуке, укажите: community.crypto.openssl_pkcs12.

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

Описание

  • Этот модуль позволяет (пере)генерировать PKCS#12.
  • Модуль может использовать библиотеку cryptography Python или pyOpenSSL Python. По умолчанию он пытается определить, какая из них доступна, предполагая, что ни один из параметров iter_size и maciter_size не используется. Это можно переопределить с помощью параметра select_crypto_backend.

Требования

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

  • PyOpenSSL >= 0.15, < 23.3.0 или cryptography >= 3.0

Параметры

Параметр

Комментарии

action

string

export или parse PKCS#12.

Варианты:

  • "export" ← (по умолчанию)
  • "parse"

attributes

aliases: attr

string

Атрибуты, которыми должен обладать результирующий объект файловой системы.

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

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

Оператор = предполагается по умолчанию, в противном случае должны быть включены операторы + или -.

backup

boolean

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

Варианты:

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

certificate_path

path

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

Должен быть в формате PEM.

encryption_level

string

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

Определяет используемый уровень шифрования.

auto использует значение по умолчанию выбранного бэкенда. Для cryptography, это то, что конкретная версия библиотеки cryptography считает лучшим доступным шифрованием.

compatibility2022 использует параметры совместимости для старого программного обеспечения в 2022 году. Это поддерживается только бэкендом cryptography, если доступна cryptography >= 38.0.0.

Примечание, что этот параметр не используется для идемпотентности.

Варианты:

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

force

boolean

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

Варианты:

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

friendly_name

aliases: name

string

Указывает понятное имя для сертификата и закрытого ключа.

group

string

Имя группы, которой должен принадлежать объект файловой системы, как если бы оно передавалось в chown.

Если не указано, используется текущая группа текущего пользователя, если вы не являетесь root, в этом случае он может сохранить предыдущее владение.

iter_size

integer

Количество повторений шага шифрования.

Это не учитывается при проверках идемпотентности.

Это используется только бэкендом pyopenssl, или когда encryption_level=compatibility2022.

При использовании, значение по умолчанию равно 2048 для pyopenssl и 50000 для cryptography.

maciter_size

integer

Количество повторений шага MAC.

Это не учитывается при проверках идемпотентности.

Это используется только бэкендом pyopenssl. При использовании, значение по умолчанию равно 1.

mode

any

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

Для тех, кто привык к /usr/bin/chmod, помните, что режимы на самом деле являются восьмеричными числами. Вы должны предоставить Ansible достаточно информации, чтобы правильно их разобрать. Для согласованных результатов заключайте восьмеричные числа в кавычки (например, '644' или '1777'), чтобы Ansible получал строку и мог выполнить собственное преобразование из строки в число. Добавление ведущего нуля (например, 0755) иногда работает, но может давать сбои в циклах и некоторых других обстоятельствах.

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

Начиная с Ansible 1.8, режим может быть указан как символьный режим (например, u+rwx или u=rw,g=r,o=r).

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

Если mode не указан и целевой объект файловой системы существует, будет использоваться режим существующего объекта файловой системы.

Указание mode — лучший способ гарантировать, что объекты файловой системы создаются с правильными правами доступа. Дополнительные сведения см. в CVE-2020-1736.

other_certificates

aliases: ca_certificates

list / elements=path

Список других сертификатов для включения. До Ansible 2.8 этот параметр назывался ca_certificates.

Предполагается, что в каждом файле находится один сертификат в кодировке PEM. Если файл содержит несколько сертификатов PEM, установите other_certificates_parse_all в true.

other_certificates_parse_all

boolean

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

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

Варианты:

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

owner

string

Имя пользователя, которому должен принадлежать объект файловой системы, как если бы оно передавалось в chown.

Если не указано, используется текущий пользователь, если вы не являетесь root, в этом случае он может сохранить предыдущее владение.

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

пароль

строка

Пароль PKCS#12.

Примечание: Шифрование PKCS12 не является безопасным и не должно использоваться в качестве механизма защиты. Если вам нужно безопасно хранить или отправлять файл PKCS12, необходимо дополнительно зашифровать его другим способом.

путь

путь / обязательно

Имя файла для записи файла PKCS#12.

содержимое_приватного_ключа

строка

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

Содержимое файла приватного ключа.

Взаимоисключающее с privatekey_path.

пароль_приватного_ключа

строка

Источник пароля для расшифровки любых входных ключей.

путь_приватного_ключа

путь

Файл для чтения приватного ключа.

Взаимоисключающее с privatekey_content.

возвращать_содержимое

логическое

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

Если установлено в true, вернёт содержимое (текущее или сгенерированное) PKCS#12 как pkcs12.

Варианты:

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

выбрать_криптографический_бэкенд

строка

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

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

По умолчанию выбран auto, который пытается использовать cryptography, если доступен, и переходит к pyopenssl. Если iter_size используется вместе с encryption_level не compatibility2022, или если maciter_size используется, auto всегда выберет pyopenssl для обратной совместимости.

Если установлено в pyopenssl, будет использована библиотека pyOpenSSL.

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

Варианты:

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

selevel

строка

Часть уровня контекста объекта файловой системы SELinux.

Это атрибут MLS/MCS, иногда известный как range.

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

serole

строка

Часть роли контекста объекта файловой системы SELinux.

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

setype

строка

Часть типа контекста объекта файловой системы SELinux.

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

seuser

строка

Часть пользователя контекста объекта файловой системы SELinux.

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

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

источник

путь

Путь к файлу PKCS#12 для анализа.

состояние

строка

Указывает, должен ли файл существовать или нет. Все параметры, кроме path, игнорируются, когда состояние равно absent.

Варианты:

  • "absent"
  • "present" ← (по умолчанию)

неопасные_записи

логическое

Влияет на использование атомарной операции для предотвращения повреждения данных или несогласованного чтения из целевого объекта файловой системы.

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

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

ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных.

Варианты:

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

Атрибуты

Атрибут

Поддержка

Описание

режим_проверки

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

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

режим_сравнения

Поддержка: отсутствует

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

безопасные_операции_с_файлами

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

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

См. также

См. также

community.crypto.x509_certificate

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

community.crypto.openssl_csr

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

community.crypto.openssl_dhparam

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

community.crypto.openssl_privatekey

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

community.crypto.openssl_publickey

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

Примеры

- name: Generate PKCS#12 file
  community.crypto.openssl_pkcs12:
    action: export
    path: /opt/certs/ansible.p12
    friendly_name: raclette
    privatekey_path: /opt/certs/keys/key.pem
    certificate_path: /opt/certs/cert.pem
    other_certificates: /opt/certs/ca.pem
    # Note that if /opt/certs/ca.pem contains multiple certificates,
    # only the first one will be used. See the other_certificates_parse_all
    # option for changing this behavior.
    state: present

- name: Generate PKCS#12 file
  community.crypto.openssl_pkcs12:
    action: export
    path: /opt/certs/ansible.p12
    friendly_name: raclette
    privatekey_content: '{{ private_key_contents }}'
    certificate_path: /opt/certs/cert.pem
    other_certificates_parse_all: true
    other_certificates:
      - /opt/certs/ca_bundle.pem
        # Since we set other_certificates_parse_all to true, all
        # certificates in the CA bundle are included and not just
        # the first one.
      - /opt/certs/intermediate.pem
        # In case this file has multiple certificates in it,
        # all will be included as well.
    state: present

- name: Change PKCS#12 file permission
  community.crypto.openssl_pkcs12:
    action: export
    path: /opt/certs/ansible.p12
    friendly_name: raclette
    privatekey_path: /opt/certs/keys/key.pem
    certificate_path: /opt/certs/cert.pem
    other_certificates: /opt/certs/ca.pem
    state: present
    mode: '0600'

- name: Regen PKCS#12 file
  community.crypto.openssl_pkcs12:
    action: export
    src: /opt/certs/ansible.p12
    path: /opt/certs/ansible.p12
    friendly_name: raclette
    privatekey_path: /opt/certs/keys/key.pem
    certificate_path: /opt/certs/cert.pem
    other_certificates: /opt/certs/ca.pem
    state: present
    mode: '0600'
    force: true

- name: Dump/Parse PKCS#12 file
  community.crypto.openssl_pkcs12:
    action: parse
    src: /opt/certs/ansible.p12
    path: /opt/certs/ansible.pem
    state: present

- name: Remove PKCS#12 file
  community.crypto.openssl_pkcs12:
    path: /opt/certs/ansible.p12
    state: absent

Значения возврата

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

Ключ

Описание

backup_file

строка

Имя созданного файла резервной копии.

Возвращается: изменён и если backup является true

Пример: "/path/to/ansible.com.pem.2019-03-09@11:22~"

filename

строка

Путь к сгенерированному файлу PKCS#12.

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

Пример: "/opt/certs/ansible.p12"

pkcs12

строка

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

Содержимое (текущее или сгенерированное) PKCS#12, закодированное в Base64.

Возвращается: если state является present и return_content является true

privatekey

строка

Путь к закрытому ключу TLS/SSL, из которого был сгенерирован открытый ключ.

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

Пример: "/etc/ssl/private/ansible.com.pem"

Авторы

  • Guillaume Delpierre (@gdelpierre)

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

  • Система отслеживания задач
  • Репозиторий (источники)
  • Задайте вопрос (криптография)
  • Задайте вопрос (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/openssl_pkcs12_module.html

Spec-Zone.ru

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