openssl_publickey – Генерация открытого ключа OpenSSL из закрытого ключа
Новое в версии 2.3.
Описание
- Этот модуль позволяет (снова) сгенерировать открытый ключ OpenSSL из соответствующего закрытого ключа.
- Он использует библиотеку pyOpenSSL для взаимодействия с openssl.
- Ключи генерируются в формате PEM.
- Этот модуль работает только при использовании достаточно новой версии PyOpenSSL (> 16.0.0).
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется данный модуль.
- pyOpenSSL
- cryptography (если format равен
OpenSSH)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка добавлено в 2.3 | Атрибуты, которые должен иметь результирующий файл или каталог. Чтобы получить поддерживаемые флаги, обратитесь к странице руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr. Оператор = предполагается по умолчанию, в противном случае операторы + или - необходимо включить в строку.псевдонимы: attr | |
| backup булево добавлено в 2.8 |
| Создать резервную копию файла, включая временную метку, чтобы можно было восстановить исходный открытый ключ в случае случайной перезаписи другим ключом. |
| force булево |
| Необходимо ли перегенерировать ключ, даже если он уже существует. |
| format строка добавлено в 2.4 |
| Формат открытого ключа. |
| group строка | Имя группы, которая должна владеть файлом/каталогом (как для chown). | |
| mode строка | Права доступа, которые должен иметь результирующий файл или каталог. Для тех, кто привык к /usr/bin/chmod, помните, что режимы на самом деле являются восьмеричными числами. Вы должны либо добавить ведущую нуль, чтобы Ansible's YAML-парсер понял, что это восьмеричное число (например, 0644 или 01777), либо заключить его в кавычки (например, '644' или '1777'), чтобы 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, из которого необходимо сгенерировать открытый ключ. | |
| selevel строка | По умолчанию: "s0" | Часть контекста SELinux-файла, отвечающая за уровень. Это атрибут MLS/MCS, иногда известный как range. Если установлено в _default, будет использоваться часть политики level, если она доступна. |
| serole строка | Часть контекста SELinux-файла, отвечающая за роль. Если установлено в _default, будет использоваться часть политики role, если она доступна. | |
| setype строка | Часть контекста SELinux-файла, отвечающая за тип. Если установлено в _default, будет использоваться часть политики type, если она доступна. | |
| seuser строка | Часть контекста SELinux-файла, отвечающая за пользователя. По умолчанию используется политика system, где это применимо.Если установлено в _default, будет использоваться часть политики user, если она доступна. | |
| state строка |
| Указывает, должен ли существовать открытый ключ или нет, предпринимая действия, если состояние отличается от указанного. |
| 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 – Генерация архива 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)
Подсказка
Если вы заметили какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 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_publickey_module.html