Automate Certificates 文档

目标、代理和 Webhook

目标是安装证书的地方。Automate Certificates 还可以扫描您尚未管理的证书,并把事件发送到您自己的工具。

目标类型

Business 和 MSP 套餐支持全部 21 种目标类型。Team 支持 5 个目标。

自定义 API 目标

端点必须是 https:// 网址。纯 http:// 端点会被拒绝,因为请求中包含私钥。

Linux 代理

代理是运行在 Linux 主机上的小型 Python 3 服务。Automate Certificates 通过 https 并仅凭代理密钥将证书推送给它。文件存放位置和服务重载方式在安装时于主机上设置,绝不取自请求。安装程序需要 systemd。

  1. 创建一个较长的随机密钥,例如使用 openssl rand -hex 32。密钥至少 32 个字符。
  2. 以 root 身份在主机上下载并运行安装程序,并提供密钥和您的服务所用的路径。
  3. 在 Automate Certificates 中创建目标,填写代理网址(https://<host>:8443)和相同的密钥。
curl -fsSL https://api.automate-certificates.com/v1/agent/install/linux -o install-agent.sh
sudo CERTAI_AGENT_KEY="$(openssl rand -hex 32)" \
     CERTAI_CERT_PATH=/etc/nginx/tls/site.crt \
     CERTAI_KEY_PATH=/etc/nginx/tls/site.key \
     CERTAI_RELOAD_COMMAND="systemctl reload nginx" \
     bash install-agent.sh

只显示一次密钥,请保存好;目标需要使用相同的值。安装程序会在 /etc/automate-certificates/agent.json 写入仅 root 可读的配置文件,并启动 systemd 单元 automate-certificates-agent。代理只响应 https,对任何没有正确密钥的请求返回 401。它使用位于 CERTAI_CERT_PATH(或 CERTAI_TLS_CERT 和 CERTAI_TLS_KEY)的证书提供 https,因此该文件必须在安装前存在。默认端口为 8443(CERTAI_PORT)。

Windows 代理

Windows 代理是运行在 Windows 主机上的 PowerShell 服务。Automate Certificates 仅通过 https 并凭代理密钥将证书推送给它。文件存放位置和之后运行的内容在安装时于主机上设置,绝不取自请求。安装程序需要 PowerShell 7.4 或更高版本(pwsh),并且必须以管理员身份运行。

  1. 创建一个至少 32 个字符的密钥,例如使用下方代码块中的 PowerShell 命令。
  2. 下载安装程序并以管理员身份运行,并提供密钥和您的服务所用的路径。
  3. 在 Windows 防火墙中允许来自 Automate Certificates 的入站 TCP 端口 8443。安装程序不会打开该端口。
  4. 在 Automate Certificates 中创建目标,填写代理网址(https://<host>:8443)和相同的密钥。
Invoke-WebRequest https://api.automate-certificates.com/v1/agent/install/windows -OutFile install-agent.ps1
$env:CERTAI_AGENT_KEY = [Convert]::ToHexString([Security.Cryptography.RandomNumberGenerator]::GetBytes(32))
$env:CERTAI_CERT_PATH = 'C:\certs\site.crt'; $env:CERTAI_KEY_PATH = 'C:\certs\site.key'
$env:CERTAI_CERT_STORE = 'My'; $env:CERTAI_RELOAD_COMMAND = '& C:\scripts\bind-certificate.ps1'
pwsh -NoProfile -ExecutionPolicy Bypass -File install-agent.ps1

请保存密钥;目标需要使用相同的值。安装程序会把代理注册为名为 AutomateCertificatesAgent 的计划任务,以 SYSTEM 身份运行,并将配置保存在 C:\ProgramData\AutomateCertificates 下。代理只响应 https,对任何没有正确密钥的请求返回 401。安装程序的设置如下:

设置作用
CERTAI_AGENT_KEY必填。至少 32 个字符。目标需要使用相同的密钥。
CERTAI_CERT_PATH, CERTAI_KEY_PATH每个已部署证书和密钥的写入位置,格式为 PEM。默认文件夹为 C:\ProgramData\AutomateCertificates\certs。
CERTAI_CERT_STORELocalMachine 证书存储区,例如 My,每个证书也会导入其中。
CERTAI_RELOAD_COMMAND每次部署后运行的 PowerShell,运行时会设置 CERTAI_CERT_PATH、CERTAI_KEY_PATH 和 CERTAI_THUMBPRINT,例如用于在 IIS 中绑定新证书。退出码非零会使部署失败。
CERTAI_PORT代理监听的端口。默认为 8443。
CERTAI_TLS_CERT, CERTAI_TLS_KEY代理自身的 https 证书。默认使用它所管理的证书和密钥,二者必须已以 PEM 格式存在,并对本机主机名有效。同时包含密钥的证书文件无需单独的密钥文件。

每次部署时,密钥文件始终仅 SYSTEM 和管理员可读。需要读取密钥的服务在重载命令中获得访问权限,例如:

icacls "C:\certs\mongo.pem" /grant "NT SERVICE\MongoDB:R"; Restart-Service MongoDB

如果所管理的证书过期,Automate Certificates 将无法再连接代理。为避免这种情况,请将 CERTAI_TLS_CERT 和 CERTAI_TLS_KEY 指向一个单独的长期有效证书。要打开端口,安装程序会输出下面这条规则供您运行:

New-NetFirewallRule -DisplayName 'Automate Certificates agent' -Direction Inbound -Protocol TCP -LocalPort 8443 -Action Allow

Discovery

扫描会找出未录入清单的证书:Azure 租户扫描、AWS 和 GCP 扫描,以及对公开域名的网络扫描。扫描计入您套餐的每日扫描上限,启动扫描需要管理员权限。

Webhook

在 Alerts 页面添加 Webhook,即可把事件发送到您自己的工具。事件包括 cert.issued、cert.expiring、cert.issue_failed、cert.renew_failed、cert.renewal_dns_required、deployment.success 和 deployment.failed。每个请求都经过签名:请求头 X-Automate-Certificates-Signature 包含 sha256= 和使用创建 Webhook 时仅显示一次的密钥对请求正文计算的 HMAC。

MCP

目前还不能从产品中安装 MCP 工具,因此它们不属于当前产品的一部分。