openssl_publickey – Генерация открытого ключа OpenSSL из закрытого ключа
Синтаксис
- Этот модуль позволяет (повторно) сгенерировать открытые ключи OpenSSL из соответствующих закрытых ключей.
- Ключи генерируются в формате PEM или OpenSSH.
- Модуль может использовать библиотеку cryptography Python или библиотеку pyOpenSSL Python. По умолчанию, он пытается определить, какая из них доступна. Это можно переопределить с помощью параметра select_crypto_backend. Когда format равен
OpenSSH, необходимо использоватьcryptographyбэкенд. Обратите внимание, что бэкенд PyOpenSSL был устаревший в Ansible 2.9 и будет удалён в Ansible 2.13.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- Либо cryptography >= 1.2.3 (более старые версии, возможно, также работают)
- Либо pyOpenSSL >= 16.0.0
- Необходимо cryptography >= 1.4, если format равен
OpenSSH
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка | Атрибуты, которые должны иметь создаваемый файл или директория. Для получения поддерживаемых флагов обратитесь к странице руководства (man page) для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и отображаемый lsattr. Оператор = предполагается по умолчанию, в противном случае операторы + или - должны быть включены в строку.псевдонимы: attr | |
| backup булево добавлен в 2.8 |
| Создать резервную копию файла, включая отметку времени, чтобы вы могли восстановить оригинальный открытый ключ, если вы случайно перезаписали его другим ключом. |
| force булево |
| Ключ должен быть сгенерирован заново, даже если он уже существует. |
| format строка добавлен в 2.4 |
| Формат открытого ключа. |
| group строка | Имя группы, которой должен принадлежать файл/директория, как передается в chown. | |
| mode строка | Разрешения, которые должен иметь создаваемый файл или директория. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую ноль, чтобы парсер YAML Ansible знал, что это восьмеричное число (например, 0644 или 01777), или заключить его в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и смог самостоятельно выполнить преобразование из строки в число.Если вы передадите Ansible число без выполнения одного из этих правил, Ansible примет его как десятичное число, что приведет к непредсказуемым результатам. Начиная с Ansible 1.8, режим может быть указан как символьный режим (например, u+rwx или u=rw,g=r,o=r). | |
| owner строка | Имя пользователя, которому должен принадлежать файл/директория, как передается в chown. | |
| path путь / обязательно | Имя файла, в котором будет записан сгенерированный открытый ключ TLS/SSL. | |
| privatekey_passphrase строка добавлен в 2.4 | Пароль к закрытому ключу. | |
| privatekey_path путь | Путь к закрытому ключу TLS/SSL, из которого нужно сгенерировать открытый ключ. Обязательно, если state равен present. | |
| select_crypto_backend строка добавлен в 2.9 |
| Определяет, какой криптографический модуль использовать. По умолчанию выбирается 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, если доступна. | |
| state строка |
| Указывает, должен ли открытый ключ существовать или нет, выполняя действия, если состояние отличается от указанного. |
| 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_privatekey – Генерация закрытых ключей OpenSSL
- Официальная документация по модулю openssl_privatekey.
Примеры
- name: Generate an OpenSSL public key in PEM format
openssl_publickey:
path: /etc/ssl/public/ansible.com.pem
privatekey_path: /etc/ssl/private/ansible.com.pem
- name: Generate an OpenSSL public key in OpenSSH v2 format
openssl_publickey:
path: /etc/ssl/public/ansible.com.pem
privatekey_path: /etc/ssl/private/ansible.com.pem
format: OpenSSH
- name: Generate an OpenSSL public key with a passphrase protected private key
openssl_publickey:
path: /etc/ssl/public/ansible.com.pem
privatekey_path: /etc/ssl/private/ansible.com.pem
privatekey_passphrase: ansible
- name: Force regenerate an OpenSSL public key if it already exists
openssl_publickey:
path: /etc/ssl/public/ansible.com.pem
privatekey_path: /etc/ssl/private/ansible.com.pem
force: yes
- name: Remove an OpenSSL public key
openssl_publickey:
path: /etc/ssl/public/ansible.com.pem
privatekey_path: /etc/ssl/private/ansible.com.pem
state: absent
Значения возврата
Общие значения возврата описаны в этом разделе, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_file строка | изменено, и если backup yes
| Имя созданного файла резервной копии. Пример: /path/to/publickey.pem.2019-03-09@11:22~ |
| filename строка | изменено или успешно | Путь к сгенерированному файлу открытого ключа TLS/SSL. Пример: /etc/ssl/public/ansible.com.pem |
| fingerprint словарь | изменено или успешно | Отпечаток открытого ключа. Отпечаток будет сгенерирован для каждого доступного алгоритма hashlib. Требуется 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'} |
| format строка | изменено или успешно | Формат открытого ключа (PEM, OpenSSH и т. д.). Пример: PEM |
| privatekey строка | изменено или успешно | Путь к закрытому ключу TLS/SSL, из которого был сгенерирован открытый ключ. Пример: /etc/ssl/private/ansible.com.pem |
Статус
- Данному модулю не гарантируется обратная совместимость. [превью]
- Этот модуль поддерживается сообществом 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_publickey_module.html