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 模块创建私钥。如果必备条件(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 起,值  选项 
 | |
| 是否允许创建帐户(当状态为  选项 
 | |
| 联系人 URL 列表。 电子邮件地址必须以  有关允许的内容,请参阅 https://tools.ietf.org/html/rfc8555#section-7.3。 当状态为  默认值:  | |
| 允许在帐户创建期间提供外部帐户绑定数据。 这被诸如 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 ACME Service for InCommon 配合使用。 如果您在使用其他 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:[email protected]
    - mailto:[email protected]
- 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:[email protected]
- 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
返回值
常见的返回值记录在这里,以下是此模块独有的字段
| 键 | 描述 | 
|---|---|
| ACME 账户 URI,如果账户不存在则为 None。 返回: 总是 | 
