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。 返回: 总是 |