community.crypto.acme_certificate_deactivate_authz 模块 – 取消 ACME v2 订单的所有授权

注意

此模块是 community.crypto 集合 (版本 2.22.3) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.crypto。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。

要在 playbook 中使用它,请指定:community.crypto.acme_certificate_deactivate_authz

community.crypto 2.20.0 中的新增功能

概要

  • 取消 ACME v2 订单的所有身份验证对象 (authz),这实际上会停用(使无效)订单本身。

  • 身份验证对象绑定到帐户密钥,并在一定时间内保持有效,可用于签发证书,而无需重新验证域。这可能是一个安全隐患。

  • 使用此模块的另一个原因是停用在使用 include_renewal_cert_id 时处理失败的订单。

要求

执行此模块的主机需要以下要求。

参数

参数

注释

account_key_content

字符串

ACME 帐户 RSA 或椭圆曲线密钥的内容。

account_key_src 互斥。

如果未使用 account_key_src,则需要此参数。

警告:内容将写入临时文件,模块完成后 Ansible 将删除该文件。由于这是一个重要的私钥——它可以用来更改帐户密钥,或者在不知道其私钥的情况下吊销证书——这可能是不可接受的。

如果使用 cryptography,则内容不会写入临时文件。Ansible 在将模块及其参数移动到执行它的节点的过程中,仍然可能将其写入磁盘。

account_key_passphrase

字符串

community.crypto 1.6.0 中新增

用于解码帐户密钥的密码。

注意:openssl 后端不支持此功能,只有 cryptography 后端支持。

account_key_src

别名:account_key

路径

包含 ACME 帐户 RSA 或椭圆曲线密钥的文件的路径。

可以使用 community.crypto.openssl_privatekeycommunity.crypto.openssl_privatekey_pipe 模块创建私钥。如果所需的 (cryptography) 库不可用,也可以使用 openssl 命令行工具直接创建密钥:可以使用 openssl genrsa ... 创建 RSA 密钥。可以使用 openssl ecparam -genkey ... 创建椭圆曲线密钥。任何其他创建 PEM 格式私钥的工具也可以使用。

account_key_content 互斥。

如果未使用account_key_content,则需要此参数。

account_uri

字符串

如果指定,则假定帐户URI如所提供。如果帐户密钥与该帐户不匹配,或者不存在具有此URI的帐户,则模块将失败。

acme_directory

字符串 / 必需

要使用的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_version

整数 / 必需

端点的ACME版本。

对于经典的Let’s Encrypt和Buypass ACME端点,必须为1;对于标准化的ACME v2端点,必须为2

自community.crypto 2.0.0版本起,值1已弃用,并将从community.crypto 3.0.0中移除。

选项

  • 1

  • 2

order_uri

字符串 / 必需

要停用的ACME v2订单。

可从order_uri获取。

request_timeout

整数

在community.crypto 2.3.0中添加

Ansible应该等待ACME API响应的时间。

此超时适用于所有HTTP(S)请求(HEAD、GET、POST)。

默认值:10

select_crypto_backend

字符串

确定要使用的加密后端。

默认选择是auto,如果可用,它将尝试使用cryptography,否则回退到openssl

如果设置为openssl,将尝试使用openssl二进制文件。

如果设置为cryptography,将尝试使用cryptography库。

选项

  • "auto" ← (默认)

  • "cryptography"

  • "openssl"

validate_certs

布尔值

对ACME目录的调用是否将验证TLS证书。

警告:仅应出于测试目的将其设置为false,例如针对本地Pebble服务器进行测试时。

选项

  • false

  • true ← (默认)

属性

属性

支持

描述

action_group

操作组: community.crypto.acmeacme

module_defaults中使用group/acmegroup/community.crypto.acme为该模块设置默认值。

check_mode

支持:完全支持

可以在check_mode下运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:不支持

在差异模式下,将返回有关已更改内容(或可能需要在check_mode中更改的内容)的详细信息。

备注

注意

  • 尽管默认值的选择使得该模块可以与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)。

另请参阅

另请参阅

community.crypto.acme_certificate

使用ACME协议创建SSL/TLS证书。

示例

- name: Deactivate all authzs for an order
  community.crypto.acme_certificate_deactivate_authz:
    account_key_content: "{{ account_private_key }}"
    order_uri: "{{ certificate_result.order_uri }}"

作者

  • Felix Fontein (@felixfontein)