community.crypto.acme_account 模块 – 创建、修改或删除 ACME 帐户
注意
此模块是 community.crypto 集合(版本 2.22.3)的一部分。
如果您使用的是 ansible 包,您可能已经安装了此集合。 它不包含在 ansible-core 中。 要检查是否已安装,请运行 ansible-galaxy collection list。
要安装它,请使用:ansible-galaxy collection install community.crypto。 您需要其他要求才能使用此模块,请参阅 要求 了解详细信息。
要在 playbook 中使用它,请指定:community.crypto.acme_account。
概要
- 允许使用支持 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 模块创建私钥。 如果所需的(加密)不可用,也可以直接使用  与  如果未使用  | |
| 如果指定,则假定帐户 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 开始,值  选项 
 | |
| 是否允许创建帐户(当状态为  选项 
 | |
| 联系 URL 的列表。 电子邮件地址必须以  有关允许的内容,请参阅 https://tools.ietf.org/html/rfc8555#section-7.3。 当 state 为  默认值:  | |
| 允许在创建帐户期间提供外部帐户绑定数据。 这被诸如 Sectigo 之类的 CA 用来将新的 ACME 帐户绑定到现有的 CA 特定帐户,以便能够正确识别客户。 仅在创建新帐户时使用。不能为 ACME v1 指定。 | |
| CA 提供的 MAC 算法。 如果 CA 未指定,则可能为  选项 
 | |
| CA 提供的 MAC 密钥的 Base64 URL 编码值。 可以省略填充(末尾的  | |
| CA 提供的密钥标识符。 | |
| 要更改的 ACME 帐户 RSA 或椭圆曲线密钥的内容。 与  与  如果未使用  | |
| 用于解码新帐户密钥的密码。 注意:  | |
| 包含要更改的 ACME 帐户 RSA 或椭圆曲线密钥的文件路径。 与  与  如果未使用  | |
| Ansible 应等待 ACME API 响应的时间。 此超时适用于所有 HTTP(S) 请求(HEAD、GET、POST)。 默认值:  | |
| 确定要使用的加密后端。 默认选择是  如果设置为  如果设置为  选项 
 | |
| 帐户的状态,由其帐户密钥标识。 如果状态为  如果状态为  选项 
 | |
| 布尔值,指示您是否同意服务条款文档。 ACME 服务器可能要求此值为  选项 
 | |
| 对 ACME 目录的调用是否验证 TLS 证书。 警告: 仅应出于测试目的将其设置为  选项 
 | 
属性
| 属性 | 支持 | 描述 | 
|---|---|---|
| 操作组: community.crypto.acme, acme | 在  | |
| 支持: 完全 | 可以在  | |
| 支持: 完全 | 当处于差异模式时,将返回有关已更改的内容(或可能需要在  | 
注意
注意
- community.crypto.acme_certificate 模块还允许进行基本的帐户管理。当同时使用这两个模块时,建议禁用 community.crypto.acme_certificate 的帐户管理。为此,请使用 community.crypto.acme_certificate 的 - modify_account选项。
- 虽然默认值经过选择,以便该模块可以与 Let’s Encrypt CA 一起使用,但原则上该模块可以与任何提供 ACME 端点的 CA 一起使用,例如 Buypass Go SSL。 
- 到目前为止,ACME 模块仅由开发人员针对 Let’s Encrypt(暂存和生产)、Buypass(暂存和生产)、ZeroSSL(生产)和 Pebble 测试服务器进行了测试。我们收到了社区反馈,它们也适用于 Sectigo 为 InCommon 提供的 ACME 服务。如果您在使用其他 ACME 服务器时遇到问题,请创建一个问题,以帮助我们支持它。我们也感谢关于未提及的 ACME 服务器可以正常工作的反馈。 
- 如果可用足够新版本的 - cryptography库(有关详细信息,请参阅要求),它将代替- openssl二进制文件使用。可以使用- select_crypto_backend选项显式禁用或启用此功能。请注意,使用- openssl二进制文件会更慢且安全性更低,因为私钥内容始终必须存储在磁盘上(请参阅- account_key_content)。
另请参阅
另请参阅
- 自动证书管理环境 (ACME)
- ACME 协议的规范(RFC 8555)。 
- community.crypto.acme_account_info
- 检索有关 ACME 帐户的事实。 
- community.crypto.openssl_privatekey
- 可用于创建私有帐户密钥。 
- community.crypto.openssl_privatekey_pipe
- 可用于创建私有帐户密钥,而无需将其写入磁盘。 
- community.crypto.acme_inspect
- 允许调试问题。 
示例
- name: Make sure account exists and has given contacts. We agree to TOS.
  community.crypto.acme_account:
    account_key_src: /etc/pki/cert/private/account.key
    state: present
    terms_agreed: true
    contact:
    - mailto:me@example.com
    - mailto:myself@example.org
- name: Make sure account has given email address. Do not create account if it does not exist
  community.crypto.acme_account:
    account_key_src: /etc/pki/cert/private/account.key
    state: present
    allow_creation: false
    contact:
    - mailto:me@example.com
- name: Change account's key to the one stored in the variable new_account_key
  community.crypto.acme_account:
    account_key_src: /etc/pki/cert/private/account.key
    new_account_key_content: '{{ new_account_key }}'
    state: changed_key
- name: Delete account (we have to use the new key)
  community.crypto.acme_account:
    account_key_content: '{{ new_account_key }}'
    state: absent
返回值
常见的返回值记录在这里,以下是此模块特有的字段
| Key | 描述 | 
|---|---|
| ACME 账户 URI,如果账户不存在则为 None。 返回值: 总是 | 
