community.general.java_cert 模块 – 使用 keytool 将证书导入/移除 Java 密钥库 (cacerts)
注意
此模块是 community.general 集合(版本 10.1.0)的一部分。
如果您正在使用 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.general
。您需要进一步的要求才能使用此模块,请参阅 要求 获取详细信息。
要在 playbook 中使用它,请指定:community.general.java_cert
。
概要
这是一个围绕 keytool 的包装模块,可用于将证书和可选的私钥导入给定的 Java 密钥库,或将其从中删除。
要求
以下要求需要在执行此模块的主机上满足。
openssl
keytool
参数
参数 |
注释 |
---|---|
结果文件系统对象应具有的属性。 要获取支持的标志,请查看目标系统上 chattr 的手册页。 此字符串应包含与 lsattr 显示的顺序相同的属性。 默认情况下假定使用 |
|
导入的证书别名。 当检查密钥库中是否存在证书时,将使用别名。 |
|
用于创建密钥库的证书内容。 需要 |
|
从中加载证书的本地路径。 需要 |
|
连接到 URL 的端口。 这将用于创建服务器 URL:PORT。 默认: |
|
从中获取 SSL 证书的基本 URL。 需要 |
|
如果未指定,则 keytool 二进制文件的路径,我们将在 PATH 中搜索它。 默认: |
|
应拥有文件系统对象的组的名称,如提供给 chown 的名称一样。 如果未指定,它将使用当前用户的当前组,除非您是 root 用户,在这种情况下,它可以保留以前的所有权。 |
|
如果密钥库不存在,则创建它。 选项
|
|
密钥库密码。 |
|
密钥库的路径。 |
|
密钥库类型 (JCEKS, JKS)。 |
|
结果文件系统对象应具有的权限。 对于那些习惯使用 /usr/bin/chmod 的人来说,请记住模式实际上是八进制数字。您必须为 Ansible 提供足够的信息来正确解析它们。为了获得一致的结果,请引用八进制数字(例如, 如果给 Ansible 一个不遵循上述任何规则的数字,最终会得到一个十进制数字,这会导致意想不到的结果。 从 Ansible 1.8 开始,模式可以指定为符号模式(例如, 如果未指定 如果未指定 指定 |
|
应该拥有文件系统对象的用户的名称,与 chown 的输入相同。 如果未指定,它将使用当前用户,除非您是 root 用户,在这种情况下,它可以保留之前的所属关系。 指定数字用户名将被视为用户 ID 而不是用户名。避免使用数字用户名以避免这种混淆。 |
|
PKCS12 密钥库中的别名。 |
|
从 PKCS12 密钥库导入的密码。 |
|
从本地加载 PKCS12 密钥库的路径。 与 需要 |
|
SELinux 文件系统对象上下文的级别部分。 这是 MLS/MCS 属性,有时也称为 设置为 |
|
SELinux 文件系统对象上下文的角色部分。 设置为 |
|
SELinux 文件系统对象上下文的类型部分。 设置为 |
|
SELinux 文件系统对象上下文的用户部分。 默认情况下,它使用 设置为 |
|
定义可以是证书导入或删除的操作。 当存在 state 时,即使已经存在不同的证书别名,证书也将始终以幂等方式插入到密钥库中。 选项
|
|
将导入的证书信任为 CAcert。 选项
|
|
影响何时使用原子操作来防止数据损坏或从目标文件系统对象读取不一致的数据。 默认情况下,此模块使用原子操作来防止数据损坏或从目标文件系统对象读取不一致的数据,但有时系统的配置或只是损坏的方式会阻止这种情况。一个例子是 Docker 挂载的文件系统对象,它们无法从容器内部原子地更新,只能以不安全的方式写入。 此选项允许 Ansible 在原子操作失败时回退到更新文件系统对象的不安全方法(但是,它不会强制 Ansible 执行不安全写入)。 重要!不安全写入会受到竞争条件的影响,并可能导致数据损坏。 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持: 完全 |
可以在 |
|
支持: 完全 |
在 diff 模式下,将返回有关已更改内容(或可能需要在 |
示例
- name: Import SSL certificate from google.com to a given cacerts keystore
community.general.java_cert:
cert_url: google.com
cert_port: 443
keystore_path: /usr/lib/jvm/jre7/lib/security/cacerts
keystore_pass: changeit
state: present
- name: Remove certificate with given alias from a keystore
community.general.java_cert:
cert_url: google.com
keystore_path: /usr/lib/jvm/jre7/lib/security/cacerts
keystore_pass: changeit
executable: /usr/lib/jvm/jre7/bin/keytool
state: absent
- name: Import trusted CA from SSL certificate
community.general.java_cert:
cert_path: /opt/certs/rootca.crt
keystore_path: /tmp/cacerts
keystore_pass: changeit
keystore_create: true
state: present
cert_alias: LE_RootCA
trust_cacert: true
- name: Import trusted CA from the SSL certificate stored in the cert_content variable
community.general.java_cert:
cert_content: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
keystore_path: /tmp/cacerts
keystore_pass: changeit
keystore_create: true
state: present
cert_alias: LE_RootCA
trust_cacert: true
- name: Import SSL certificate from google.com to a keystore, create it if it doesn't exist
community.general.java_cert:
cert_url: google.com
keystore_path: /tmp/cacerts
keystore_pass: changeit
keystore_create: true
state: present
- name: Import a pkcs12 keystore with a specified alias, create it if it doesn't exist
community.general.java_cert:
pkcs12_path: "/tmp/importkeystore.p12"
cert_alias: default
keystore_path: /opt/wildfly/standalone/configuration/defaultkeystore.jks
keystore_pass: changeit
keystore_create: true
state: present
- name: Import SSL certificate to JCEKS keystore
community.general.java_cert:
pkcs12_path: "/tmp/importkeystore.p12"
pkcs12_alias: default
pkcs12_password: somepass
cert_alias: default
keystore_path: /opt/someapp/security/keystore.jceks
keystore_type: "JCEKS"
keystore_pass: changeit
keystore_create: true
state: present
返回值
常见的返回值已在此处记录 此处,以下是此模块独有的字段
键 |
描述 |
---|---|
执行的命令以完成操作。 已返回: 成功 示例: |
|
执行给定命令后,来自 keytool 命令的 stdout 输出。 已返回: 成功 示例: |
|
Keytool 命令执行返回值。 已返回: 成功 示例: |