Spec-Zone.ru › Ansible

Модуль community.crypto.openssl_pkcs12 — создание архива OpenSSL PKCS#12

Примечание

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

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

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

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

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

Краткое описание

  • Этот модуль позволяет создавать или повторно создавать PKCS#12.
  • Модуль использует библиотеку Python cryptography.

Требования

Следующие требования необходимы на хосте, где выполняется этот модуль.

  • cryptography >= 3.3

Параметры

Параметр

Комментарии

action

string

export или parse PKCS#12.

Варианты:

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

attributes

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

string

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

Поддерживаемые флаги см. на странице руководства для chattr в целевой системе.

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

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

backup

boolean

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

Варианты:

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

certificate_content

string

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

Содержимое файла сертификата в формате PEM.

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

certificate_path

path

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

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

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

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

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

string

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

group

string

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

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

iter_size

integer

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

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

Используется только при encryption_level=compatibility2022.

При использовании значение по умолчанию — 50000.

maciter_size

integer

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

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

Это значение не используется. Параметр устарел и будет удалён из community.crypto 4.0.0.

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

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

list / элементы=path

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

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

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

other_certificates_content

list / элементы=string

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

Список других сертификатов для включения.

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

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

other_certificates_parse_all

boolean

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

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

Варианты:

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

owner

string

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

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

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

passphrase

string

Пароль PKCS#12.

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

path

path / обязательный

Имя файла, в который нужно записать файл PKCS#12.

privatekey_content

string

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

Содержимое файла закрытого ключа.

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

privatekey_passphrase

string

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

privatekey_path

path

Файл, из которого нужно прочитать закрытый ключ.

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

return_content

boolean

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

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

Варианты:

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

select_crypto_backend

string

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

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

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

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

Значение pyopenssl удалено в community.crypto 3.0.0.

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

Варианты:

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

selevel

string

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

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

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

serole

string

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

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

setype

string

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

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

seuser

string

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

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

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

src

path

Путь к файлу PKCS#12 для разбора.

state

string

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

Варианты:

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

unsafe_writes

boolean

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

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

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

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

Варианты:

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

Атрибуты

Атрибут

Поддержка

Описание

check_mode

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

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

diff_mode

Поддержка: нет

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

idempotent

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

Модуль не является идемпотентным, если force=true.

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

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

safe_file_operations

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

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

См. также

См. также

community.crypto.x509_certificate

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

community.crypto.openssl_csr

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

community.crypto.openssl_dhparam

Создание параметров Диффи — Хеллмана 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

string

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

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

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

filename

string

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

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

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

pkcs12

string

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

Содержимое текущего или сгенерированного файла PKCS#12 в кодировке Base64.

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

privatekey

string

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

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

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

Авторы

  • Guillaume Delpierre (@gdelpierre)

Ссылки коллекции

  • Трекер задач
  • Репозиторий (исходный код)
  • Запросить помощь (криптография)
  • Запросить помощь (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/openssl_pkcs12_module.html

Spec-Zone.ru

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