openssl_privatekey – Генерация закрытых ключей OpenSSL
Новая в версии 2.3.
Синопсис
- Этот модуль позволяет (снова) генерировать закрытые ключи OpenSSL.
- Можно генерировать закрытые ключи RSA), DSA, ECC или EdDSA.
- Ключи генерируются в формате PEM.
- Обратите внимание, что модуль перегенерирует закрытые ключи, если они не соответствуют параметрам модуля. В частности, если вы укажете другой пароль (или не укажете его), измените размер ключа и т. д., закрытый ключ будет перегенерирован. Если вы беспокоитесь о том, что это может перезаписать ваш закрытый ключ, воспользуйтесь параметром backup.
- Модуль может использовать библиотеку cryptography Python или pyOpenSSL Python. По умолчанию он пытается определить, какая из них доступна. Это можно переопределить с помощью параметра select_crypto_backend.
Требования
Ниже приведены требования к хосту, на котором выполняется этот модуль.
- Либо cryptography >= 1.2.3 (более старые версии могут также работать)
- Либо pyOpenSSL
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка добавлено в 2.3 | Атрибуты, которые должны быть у результирующего файла или каталога. Для получения поддерживаемых флагов обратитесь к странице руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении командой lsattr. Оператор = предполагается по умолчанию, в противном случае необходимо включить операторы + или - в строку.псевдонимы: attr | |
| backup логическое добавлено в 2.8 |
| Создать резервную копию файла, включая отметку времени, чтобы вы могли восстановить исходный закрытый ключ, если случайно перезаписали его новым. |
| cipher строка добавлено в 2.4 | Шифр для шифрования закрытого ключа. (Действительные значения можно найти, выполнив `openssl list -cipher-algorithms` или `openssl list-cipher-algorithms`, в зависимости от вашей версии OpenSSL.) При использовании бэкенда cryptography, используйте auto. | |
| curve строка добавлено в 2.8 |
| Обратите внимание, что не все кривые поддерживаются всеми версиями cryptography.Для максимальной совместимости следует использовать secp384r1 или secp256r1.Мы используем имена кривых, определенные в реестре IANA для TLS. |
| force логическое |
| Следует ли перегенерировать ключ, даже если он уже существует. |
| group строка | Имя группы, которая должна владеть файлом/каталогом, как если бы оно передавалось в chown. | |
| mode строка | Разрешения, которые должен иметь результирующий файл или каталог. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую цифру 0, чтобы парсер YAML Ansible понял, что это восьмеричное число (например, 0644 или 01777), либо заключить его в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и мог выполнить собственное преобразование из строки в число.Передача Ansible числа без соблюдения одного из этих правил приведет к десятичному числу, что приведет к непредвиденным результатам. Начиная с Ansible 1.8, режим можно указать как символический режим (например, u+rwx или u=rw,g=r,o=r). | |
| owner строка | Имя пользователя, который должен владеть файлом/каталогом, как если бы оно передавалось в chown. | |
| passphrase строка добавлено в 2.4 | Пароль к закрытому ключу. | |
| path путь / обязательно | Имя файла, в который будет записан сгенерированный закрытый ключ TLS/SSL. Он будет иметь режим 0600. | |
| select_crypto_backend строка добавлено в 2.8 |
| Определяет, какой бэкенд шифрования использовать. Значение по умолчанию — auto, которое пытается использовать cryptography, если оно доступно, и возвращается к pyopenssl.Если установлено значение pyopenssl, будет пытаться использовать библиотеку pyOpenSSL.Если установлено значение cryptography, будет пытаться использовать библиотеку cryptography. |
| selevel строка | Значение по умолчанию: "s0" | Часть контекста файла SELinux. Это атрибут MLS/MCS, иногда известный как range.При установке значения _default, будет использоваться часть политики level, если она доступна. |
| serole строка | Часть контекста файла SELinux. При установке значения _default, будет использоваться часть политики role, если она доступна. | |
| setype строка | Часть контекста файла SELinux. При установке значения _default, будет использоваться часть политики type, если она доступна. | |
| seuser строка | Часть контекста файла SELinux. По умолчанию используется политика system, если применимо.При установке значения _default, будет использоваться часть политики user, если она доступна. | |
| size целое число | Значение по умолчанию: 4096 | Размер (в битах) закрытого ключа TLS/SSL, который нужно сгенерировать. |
| state строка |
| Нужно ли, чтобы закрытый ключ существовал или нет, выполняя действия, если состояние отличается от указанного. |
| type строка |
| Алгоритм, используемый для генерации закрытого ключа TLS/SSL. Обратите внимание, что ECC, X25519, X448, Ed25519 и Ed448 требуют бэкенд cryptography. X25519 требует cryptography 2.5 или более поздней версии, а X448, Ed25519 и Ed448 требуют cryptography 2.6 или более поздней версии. Для ECC, минимальная версия cryptography зависит от параметра curve. |
| unsafe_writes логическое добавлено в 2.2 |
| Влияние на использование атомарных операций для предотвращения повреждения данных или несогласованного чтения из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто сломаны таким образом, что это не возможно. Один пример — файлы, смонтированные с помощью Docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным образом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачей (однако он не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
См. также
См. также
- openssl_certificate – Генерация и/или проверка сертификатов OpenSSL
- Официальная документация модуля openssl_certificate.
- openssl_csr – Генерация запроса на подпись сертификата (CSR) OpenSSL
- Официальная документация модуля openssl_csr.
- openssl_dhparam – Генерация параметров Diffie-Hellman OpenSSL
- Официальная документация модуля openssl_dhparam.
- openssl_pkcs12 – Генерация архива OpenSSL PKCS#12
- Официальная документация модуля openssl_pkcs12.
- openssl_publickey – Генерация открытого ключа OpenSSL из закрытого ключа
- Официальная документация модуля openssl_publickey.
Примеры
- name: Generate an OpenSSL private key with the default values (4096 bits, RSA)
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
openssl_privatekey:
path: /etc/ssl/private/ansible.com.pem
passphrase: ansible
cipher: aes256
- name: Generate an OpenSSL private key with a different size (2048 bits)
openssl_privatekey:
path: /etc/ssl/private/ansible.com.pem
size: 2048
- name: Force regenerate an OpenSSL private key if it already exists
openssl_privatekey:
path: /etc/ssl/private/ansible.com.pem
force: yes
- name: Generate an OpenSSL private key with a different algorithm (DSA)
openssl_privatekey:
path: /etc/ssl/private/ansible.com.pem
type: DSA
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_file строка | изменено, и если backup yes
| Имя созданного файла резервной копии. Пример: /path/to/privatekey.pem.2019-03-09@11:22~ |
| curve строка | изменено или успех, и тип ECC
| Эллиптическая кривая, используемая для генерации закрытого ключа TLS/SSL. Пример: secp256r1 |
| filename строка | изменено или успех | Путь к сгенерированному файлу закрытого ключа TLS/SSL. Пример: /etc/ssl/private/ansible.com.pem |
| fingerprint словарь | изменено или успех | Отпечаток открытого ключа. Отпечаток будет сгенерирован для каждого hashlib.algorithms доступного.Для получения осмысленного вывода бэкенд PyOpenSSL требует PyOpenSSL >= 16.0. Пример: {'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'} |
| size целое число | изменено или успех | Размер (в битах) закрытого ключа TLS/SSL. Пример: 4096 |
| type строка | изменено или успех | Алгоритм, используемый для генерации закрытого ключа TLS/SSL. Пример: RSA |
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- Yanis Guenane (@Spredzy)
- Felix Fontein (@felixfontein)
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/openssl_privatekey_module.html