openssl_privatekey – Генерация закрытых ключей OpenSSL
Синтаксис
- Этот модуль позволяет (пере)генерировать закрытые ключи OpenSSL.
- Можно сгенерировать закрытые ключи RSA, DSA, ECC или EdDSA.
- Ключи генерируются в формате PEM.
- Обратите внимание, что модуль перегенерирует закрытые ключи, если они не соответствуют параметрам модуля. В частности, если вы укажете другой пароль (или не укажете его), измените размер ключа и т.д., закрытый ключ будет перегенерирован. Если вы обеспокоены тем, что это может перезаписать ваш закрытый ключ, воспользуйтесь параметром backup.
- Модуль может использовать библиотеку cryptography Python или библиотеку pyOpenSSL Python. По умолчанию он пытается определить, какая из них доступна. Это можно переопределить с помощью параметра select_crypto_backend. Обратите внимание, что бэкенд PyOpenSSL был устаревшим в Ansible 2.9 и будет удален в Ansible 2.13.
Требования
Ниже приведены требования к хосту, на котором выполняется этот модуль.
- Либо cryptography >= 1.2.3 (более старые версии могут также работать)
- Либо pyOpenSSL
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка | Атрибуты, которые должны быть у результирующего файла или каталога. Для получения поддерживаемых флагов обратитесь к странице руководства для 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.Обратите внимание, что бэкенд pyopenssl устарел в Ansible 2.9 и будет удален в Ansible 2.13. С этого момента доступен только бэкенд 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 логическое значение |
| Влияние на момент использования атомарных операций для предотвращения повреждения данных или несогласованных чтений из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настраиваются или просто работают таким образом, что это невозможно. Одним примером являются файлы, смонтированные в Docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачей (однако он не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
См. также
См. также
- openssl_certificate – Генерация и проверка сертификатов OpenSSL
- Официальная документация модуля openssl_certificate.
- openssl_csr – Генерация запроса на подпись сертификата (CSR) OpenSSL
- Официальная документация модуля openssl_csr.
- openssl_dhparam – Генерация параметров Diffie-Hellman OpenSSL
- Официальная документация модуля openssl_dhparam.
- openssl_pkcs12 – Генерация архива PKCS#12 OpenSSL
- Официальная документация модуля 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. [сообщество]
Авторы
- 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.9/modules/openssl_privatekey_module.html