Spec-Zone.ru › Ansible

Модуль community.crypto.openssl_privatekey – создание закрытых ключей OpenSSL

Примечание

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

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

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

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

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

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

  • Ключи создаются в формате PEM.
  • Можно создавать закрытые ключи RSA, DSA, ECC или EdDSA.
  • Обратите внимание, что модуль повторно создаёт закрытые ключи, если они не соответствуют параметрам модуля. В частности, если указать другую парольную фразу (или не указывать её), изменить размер ключа и т. д., закрытый ключ будет создан заново. Если вы опасаетесь, что это может перезаписать закрытый ключ, рассмотрите возможность использования параметра backup.
  • Для файла закрытого ключа по умолчанию устанавливается режим 0600, если параметр mode не задан явно.
  • Этот модуль позволяет создавать и повторно создавать закрытые ключи OpenSSL.

Требования

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

  • cryptography >= 3.3

Параметры

Параметр

Комментарии

attributes

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

string

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

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

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

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

backup

boolean

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

Варианты:

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

cipher

string

Шифр для шифрования закрытого ключа. Используется только при наличии параметра passphrase.

Должен иметь значение auto.

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

curve

string

Обратите внимание, что разные версии cryptography поддерживают разные наборы кривых.

Для максимальной совместимости следует использовать secp384r1 или secp256r1.

Используются названия кривых, определённые в реестре IANA для TLS.

Обратите внимание, что все кривые, кроме secp224r1, secp256k1, secp256r1, secp384r1 и secp521r1, не рекомендуются для новых закрытых ключей.

Варианты:

  • "secp224r1"
  • "secp256k1"
  • "secp256r1"
  • "secp384r1"
  • "secp521r1"
  • "secp192r1"
  • "brainpoolP256r1"
  • "brainpoolP384r1"
  • "brainpoolP512r1"
  • "sect163k1"
  • "sect163r2"
  • "sect233k1"
  • "sect233r1"
  • "sect283k1"
  • "sect283r1"
  • "sect409k1"
  • "sect409r1"
  • "sect571k1"
  • "sect571r1"

force

boolean

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

Варианты:

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

format

string

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

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

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

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

Варианты:

  • "pkcs1"
  • "pkcs8"
  • "raw"
  • "auto"
  • "auto_ignore" ← (по умолчанию)

format_mismatch

string

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

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

Если задано значение regenerate (по умолчанию), создаётся новый закрытый ключ.

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

Варианты:

  • "regenerate" ← (по умолчанию)
  • "convert"

group

string

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

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

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.

owner

string

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

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

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

passphrase

string

Парольная фраза для закрытого ключа.

path

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

Имя файла, в который будет записан созданный закрытый ключ TLS/SSL. Если параметр mode не задан явно, для файла будет установлен режим 0600.

regenerate

string

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

Позволяет настроить условия, при которых модулю разрешено повторно создавать закрытые ключи. Если целевой файл не существует, модуль всегда создаёт новый ключ.

По умолчанию ключ создаётся заново, если он не соответствует параметрам модуля, за исключением случаев, когда ключ невозможно прочитать или парольная фраза не подходит. Обратите внимание, что в Ansible 2.10 это поведение изменилось. В Ansible 2.9 поведение соответствовало указанному значению full_idempotence.

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

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

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

Если задано значение full_idempotence, ключ будет создан заново, если он не соответствует параметрам модуля. Это также относится к случаям, когда ключ невозможно прочитать (повреждённый файл), он защищён неизвестной парольной фразой или не защищён парольной фразой, но парольная фраза указана. При использовании этого параметра обязательно создайте резервную копию!

Если задано значение always, модуль всегда будет создавать ключ заново. Это эквивалентно установке для force значения true.

Обратите внимание: если для format_mismatch задано значение convert и совпадают все параметры, кроме формата, ключ всегда будет преобразован, если только для regenerate не задано значение always.

Варианты:

  • "never"
  • "fail"
  • "partial_idempotence"
  • "full_idempotence" ← (по умолчанию)
  • "always"

return_content

boolean

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

Если задано значение true, содержимое (текущего или созданного) закрытого ключа будет возвращено как privatekey.

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

Используйте параметр задачи Ansible no_log, чтобы предотвратить отображение вывода. См. также https://docs.ansible.com/ansible/latest/reference_appendices/faq.html#how-do-i-keep-secret-data-in-my-playbook.

Варианты:

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

select_crypto_backend

string

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

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

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

Обратите внимание, что в 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, если она доступна.

size

integer

Размер (в битах) создаваемого ключа TLS/SSL.

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

state

string

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

Варианты:

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

type

string

Алгоритм, используемый для создания закрытого ключа TLS/SSL.

Варианты:

  • "DSA"
  • "ECC"
  • "Ed25519"
  • "Ed448"
  • "RSA" ← (по умолчанию)
  • "X25519"
  • "X448"

unsafe_writes

boolean

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

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

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

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

Варианты:

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

Атрибуты

Атрибут

Поддержка

Описание

check_mode

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

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

diff_mode

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

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

idempotent

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

Параметр regenerate=always обычно отключает идемпотентность.

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

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

safe_file_operations

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

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

См. также

См. также

community.crypto.openssl_privatekey_pipe

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

community.crypto.openssl_privatekey_info

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

community.crypto.x509_certificate

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

community.crypto.x509_certificate_pipe

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

community.crypto.openssl_csr

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

community.crypto.openssl_csr_pipe

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

community.crypto.openssl_dhparam

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

community.crypto.openssl_pkcs12

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

community.crypto.openssl_publickey

Создание открытого ключа OpenSSL на основе закрытого ключа.

Примеры

---
- name: Generate an OpenSSL private key with the default values (4096 bits, RSA)
  community.crypto.openssl_privatekey:
    path: /etc/ssl/private/ansible.com.pem

- name: Generate an OpenSSL private key with the default values (4096 bits, RSA) and a passphrase
  community.crypto.openssl_privatekey:
    path: /etc/ssl/private/ansible.com.pem
    passphrase: ansible
    cipher: auto

- name: Generate an OpenSSL private key with a different size (2048 bits)
  community.crypto.openssl_privatekey:
    path: /etc/ssl/private/ansible.com.pem
    size: 2048

- name: Force regenerate an OpenSSL private key if it already exists
  community.crypto.openssl_privatekey:
    path: /etc/ssl/private/ansible.com.pem
    force: true

- name: Generate an OpenSSL private key with a different algorithm (DSA)
  community.crypto.openssl_privatekey:
    path: /etc/ssl/private/ansible.com.pem
    type: DSA

- name: Generate an OpenSSL private key with elliptic curve cryptography (ECC)
  community.crypto.openssl_privatekey:
    path: /etc/ssl/private/ansible.com.pem
    type: ECC
    curve: secp256r1

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

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

Ключ

Описание

backup_file

string

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

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

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

curve

string

Эллиптическая кривая, используемая для создания закрытого ключа TLS/SSL.

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

Пример: "secp256r1"

filename

string

Путь к файлу созданного закрытого ключа TLS/SSL.

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

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

fingerprint

dictionary

Отпечаток открытого ключа. Отпечаток создается для каждого доступного hashlib.algorithms.

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

Пример: {"md5": "84:75:71:72:8d:04:b5:6c:4d:37:6d:66:83:f5:4c:29", "sha1": "51:cc:7c:68:5d:eb:41:43:88:7e:1a:ae:c7:f8:24:72:ee:71:f6:10", "sha224": "b1:19:a6:6c:14:ac:33:1d:ed:18:50:d3:06:5c:b2:32:91:f1:f1:52:8c:cb:d5:75:e9:f5:9b:46", "sha256": "41:ab:c7:cb:d5:5f:30:60:46:99:ac:d4:00:70:cf:a1:76:4f:24:5d:10:24:57:5d:51:6e:09:97:df:2f:de:c7", "sha384": "85:39:50:4e:de:d9:19:33:40:70:ae:10:ab:59:24:19:51:c3:a2:e4:0b:1c:b1:6e:dd:b3:0c:d9:9e:6a:46:af:da:18:f8:ef:ae:2e:c0:9a:75:2c:9b:b3:0f:3a:5f:3d", "sha512": "fd:ed:5e:39:48:5f:9f:fe:7f:25:06:3f:79:08:cd:ee:a5:e7:b3:3d:13:82:87:1f:84:e1:f5:c7:28:77:53:94:86:56:38:69:f0:d9:35:22:01:1e:a6:60:...:0f:9b"}

privatekey

string

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

Содержимое (текущего или созданного) закрытого ключа.

Будет закодировано в Base64, если ключ имеет необработанный формат.

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

size

integer

Размер закрытого ключа TLS/SSL (в битах).

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

Пример: 4096

type

string

Алгоритм, используемый для создания закрытого ключа TLS/SSL.

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

Пример: "RSA"

Авторы

  • Yanis Guenane (@Spredzy)
  • Felix Fontein (@felixfontein)

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

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Задать вопрос (crypto)
  • Задать вопрос (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_privatekey_module.html

Spec-Zone.ru

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