community.crypto.acme_account_info 模块 – 获取 ACME 账户信息
注意
此模块是 community.crypto 集合(版本 2.22.3)的一部分。
如果您正在使用 ansible
包,您可能已经安装了这个集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.crypto
。您需要其他要求才能使用此模块,请参阅 要求 以了解详细信息。
要在 playbook 中使用它,请指定:community.crypto.acme_account_info
。
概要
允许检索支持 ACME 协议的 CA 上的账户信息,例如 Let’s Encrypt。
此模块仅适用于 ACME v2 协议。
要求
执行此模块的主机需要以下要求。
openssl 或 cryptography >= 1.5
ipaddress
参数
参数 |
注释 |
---|---|
ACME 账户 RSA 或椭圆曲线密钥的内容。 与 如果未使用 警告: 内容将被写入临时文件,该文件将在模块完成后被 Ansible 删除。由于这是一个重要的私钥 — 它可用于更改帐户密钥或在不知道其私钥的情况下撤销您的证书 — 这可能不可接受。 如果使用 |
|
用于解码帐户密钥的密码。 注意: |
|
包含 ACME 账户 RSA 或椭圆曲线密钥的文件的路径。 可以使用 community.crypto.openssl_privatekey 或 community.crypto.openssl_privatekey_pipe 模块创建私钥。如果所需的 (cryptography) 不可用,也可以直接使用 与 如果未使用 |
|
如果指定,则假定帐户 URI 与给定的 URI 相同。如果帐户密钥与此帐户不匹配,或者不存在具有此 URI 的帐户,则模块将失败。 |
|
要使用的 ACME 目录。这是访问 ACME CA 服务器 API 的入口点 URL。 出于安全原因,默认设置为 Let’s Encrypt 暂存服务器(用于 ACME v1 协议)。这将创建技术上正确但不被信任的证书。 对于 Let’s Encrypt,所有暂存端点都可以在这里找到:https://letsencrypt.openssl.ac.cn/docs/staging-environment/。对于 Buypass,所有端点都可以在这里找到:https://community.buypass.com/t/63d4ay/buypass-go-ssl-endpoints 对于 Let’s Encrypt,ACME v2 的生产目录 URL 是 https://acme-v02.api.letsencrypt.org/directory。 对于 Buypass,ACME v2 和 v1 的生产目录 URL 是 https://api.buypass.com/acme/directory。 对于 ZeroSSL,ACME v2 的生产目录 URL 是 https://acme.zerossl.com/v2/DV90。 对于 Sectigo,ACME v2 的生产目录 URL 为 https://acme-qa.secure.trust-provider.com/v2/DV。 此模块的说明包含此模块已测试过的 ACME 服务列表。 |
|
端点的 ACME 版本。 对于经典的 Let's Encrypt 和 Buypass ACME 端点,必须为 自 community.crypto 2.0.0 起,值 选择
|
|
Ansible 应该等待 ACME API 响应的时间。 此超时适用于所有 HTTP(S) 请求(HEAD、GET、POST)。 默认值: |
|
是否检索订单 URL 列表或订单对象(如果 ACME 服务器提供)。 值 如果值不是 目前,Let's Encrypt 不返回订单,因此 选择
|
|
确定要使用的加密后端。 默认选择是 如果设置为 如果设置为 选择
|
|
对 ACME 目录的调用是否会验证 TLS 证书。 警告: 仅在出于测试目的(例如,针对本地 Pebble 服务器进行测试)时才应设置为 选择
|
属性
属性 |
支持 |
描述 |
---|---|---|
操作组: community.crypto.acme, acme |
在 |
|
支持:完全 此操作不会修改状态。 |
可以在 |
|
支持: 不适用 此操作不会修改状态。 |
在 diff 模式下,将返回有关已更改(或可能需要在 |
说明
注意
community.crypto.acme_account 模块允许修改、创建和删除 ACME 帐户。
在 Ansible 2.8 之前,此模块名为
acme_account_facts
。用法没有改变。尽管选择的默认值使该模块可以与 Let's Encrypt CA 一起使用,但原则上该模块可以与任何提供 ACME 端点的 CA 一起使用,例如 Buypass Go SSL。
到目前为止,ACME 模块仅由开发人员针对 Let's Encrypt(暂存和生产)、Buypass(暂存和生产)、ZeroSSL(生产)和 Pebble 测试服务器进行了测试。我们收到了社区反馈,它们也适用于 Sectigo ACME Service for InCommon。如果您在使用其他 ACME 服务器时遇到问题,请创建一个 issue 以帮助我们支持它。我们也感谢反馈提到未提及的 ACME 服务器可以正常工作。
如果有足够新版本的
cryptography
库可用(有关详细信息,请参阅要求),则将使用它而不是openssl
二进制文件。可以使用select_crypto_backend
选项显式禁用或启用此功能。请注意,使用openssl
二进制文件会更慢且安全性更低,因为私钥内容始终必须存储在磁盘上(请参阅account_key_content
)。
另请参阅
另请参阅
- community.crypto.acme_account
允许创建、修改或删除 ACME 帐户。
示例
- name: Check whether an account with the given account key exists
community.crypto.acme_account_info:
account_key_src: /etc/pki/cert/private/account.key
register: account_data
- name: Verify that account exists
ansible.builtin.assert:
that:
- account_data.exists
- name: Print account URI
ansible.builtin.debug:
var: account_data.account_uri
- name: Print account contacts
ansible.builtin.debug:
var: account_data.account.contact
- name: Check whether the account exists and is accessible with the given account key
acme_account_info:
account_key_content: "{{ acme_account_key }}"
account_uri: "{{ acme_account_uri }}"
register: account_data
- name: Verify that account exists
ansible.builtin.assert:
that:
- account_data.exists
- name: Print account contacts
ansible.builtin.debug:
var: account_data.account.contact
返回值
常见返回值记录在此处,以下是此模块独有的字段
键 |
描述 |
---|---|
从 ACME 服务器检索的帐户信息。 返回: 如果帐户存在 |
|
可以从中检索此帐户的订单列表的 URL。 使用 返回: 始终 示例: |
|
作为 JSON Web Key 的公共帐户密钥。 返回: 始终 示例: |
|
帐户的状态 返回: 始终 只能返回
示例: |
|
ACME 帐户 URI,如果帐户不存在,则为 None。 返回: 始终 |
|
帐户是否存在。 返回: 始终 |
|
订单列表。 如果 如果 返回:如果帐户存在, |
|
订单列表。 返回:如果帐户存在, |
|
此订单的授权 URL 列表。 返回: 成功 |
|
用于检索证书的 URL。 返回: 当证书已颁发时 |
|
如果在处理过程中发生错误,则此字段包含有关该错误的信息。 该字段的结构为问题文档 (RFC7807)。 返回: 当发生错误时 |
|
用于完成 ACME 订单的 URL。 返回: 成功 |
|
此订单适用的标识符列表。 返回: 成功 |
|
标识符的类型。 返回: 成功 只能返回
|
|
标识符的名称。主机名或 IP 地址。 返回: 成功 |
|
是否 返回: 如果标识符是通配符,则必须包含 |
|
证书中 日期应按照 RFC3339 中描述的格式进行格式化。 服务器不是必须返回此值。 返回: 当服务器返回此值时 |
|
证书中 日期应按照 RFC3339 中描述的格式进行格式化。 服务器不是必须返回此值。 返回: 当服务器返回此值时 |
|
订单的状态。 返回: 成功 只能返回
|