ACME(Automated Certificate Management Environment,自动证书管理环境)是一种协议,让客户端能够申请 SSL 证书、证明其对域名的控制权,并在之后无需任何人打开控制台的情况下续订证书。这一点每年都变得越来越重要。CA/Browser Forum 已将证书有效期上限设定为自 2026 年 3 月起为200 天,2027 年 3 月起降至100 天,2029 年 3 月起降至47 天。在 47 天的周期下,手动续订意味着你拥有的每张证书每年大约需要续订八次。
你能找到的大多数 ACME 相关资料都默认使用 Let’s Encrypt。但无论用哪家 CA,客户端都是一样的:certbot、acme.sh、win-acme 和 cert-manager 都可以对接任何 ACME 证书颁发机构。不同之处在于注册流程。商业 CA 要求使用External Account Binding(EAB,外部账户绑定),即随订单签发的 key ID 和 HMAC 密钥对,用于将 ACME 账户与该订单绑定。以下教程都采用这一方式,因为这部分内容在其他地方鲜有详细文档,而这正是你从商业机构获取支持 ACME 的证书时所需要的。
请选择与你要安装的目标环境相匹配的指南。每篇指南都涵盖了完整流程:使用 EAB 注册 ACME 账户、签发证书、将证书部署到软件所期望的位置,并确认之后续订能够自动运行。如果客户端已经出现故障,请直接跳转到文末的错误排查指南。
如何在 Apache 和 NGINX 上安装 ACME SSL 证书
在基于 Debian 和基于 RHEL 的系统上均使用 Certbot,并配合能自动为你编辑服务器配置的 Apache 和 NGINX 插件。内容涵盖不同发行版之间的软件包差异、商业 CA 所需的 External Account Binding 参数,以及续订触发机制——该机制在 Certbot 4.0 中已从固定的 30 天改为证书剩余有效期的三分之一。
使用 acme.sh 配合 webroot 验证方式,并同时涵盖 OpenLiteSpeed 和 LiteSpeed Enterprise 两个版本——两者的文档根目录和重载命令有所不同。内容包括在 WebAdmin 控制台中配置监听器,使服务器真正提供新证书的能力,以及在每次续订后无需断开连接即可生效的重载钩子(reload hook)。
如何在 Windows IIS 上安装 ACME SSL 证书
使用 win-acme,在提升权限的 PowerShell 窗口中运行,将来源、存储、安装、ACME 目录和 EAB 参数整合到一条命令中执行。证书会被写入 Windows 证书存储区,HTTPS 绑定会在 IIS 中被创建或更新,续订则由计划任务负责处理。内容涵盖应下载哪个版本,以及各端点的配置文件存放位置。
以 cPanel 账户用户身份运行 acme.sh,针对网站的文档根目录进行 webroot 验证,并使用 acme.sh 内置的 cPanel 部署钩子——该钩子会调用面板自身的 UAPI,将证书安装到该证书所覆盖的账户下的每一个域名上。本指南面向具有 shell 访问权限的账户编写,并附有针对无 shell 访问权限情况的处理说明。
使用 Plesk 自带的 SSL It! 和 ACME SSL 扩展,两者均支持 External Account Binding,并能在面板内部完成验证、安装、分配和续订,无需编写任何脚本。之后还介绍了通过 SSH 手动使用 acme.sh 的方法,作为扩展无法覆盖情形下的备用方案。
如何在 Kubernetes 中安装 ACME SSL 证书
使用 cert-manager,通过 Helm 从其 OCI 镜像仓库安装。内容涵盖带有 External Account Binding 部分的 ClusterIssuer、EAB 密钥所需的无填充 base64url 编码方式、在为 Ingress 添加注解与编写 Certificate 资源之间的选择(两者都做只会造成工作重复,而非相互强化),以及 cert-manager 如何判断何时进行续订。
使用 acme.sh 配合 DNS-01 验证方式,因为邮件服务器往往并不提供可用于 HTTP 验证的网站。内容涵盖 Postfix 的证书链文件参数及其相关陷阱、Dovecot 在 2.4 版本中重命名的 TLS 设置项名称、Exim,以及每次续订替换文件后各守护进程所需的重载操作。
使用 win-acme,该工具本身并没有专门的 RDP 安装插件。可行的方式是使用其脚本安装插件,指向 ImportRDListener.ps1——这是 win-acme 自带的一个 PowerShell 脚本,用于将新证书的指纹写入 RDP 监听器。内容涵盖如何验证监听器是否已正确应用该指纹。
使用从 pfSense 的 Package Manager 安装的 ACME 软件包,按顺序完成其三个选项卡的设置。内容涵盖如何将商业 CA 的目录 URL 添加为自定义服务器(因为账户表单提供的是下拉菜单而非 URL 输入框),以及 HTTP 验证与 Web 界面自身的 80 端口重定向之间的冲突问题。
如何在 OPNsense 防火墙上安装 ACME SSL 证书
使用官方的 os-acme-client 插件,按照该插件预期的顺序完成四个配置页面:包含自定义 CA URL 和 EAB 凭据的账户、验证方式、自动化操作,以及证书本身。自动化操作正是在每次续订后重启使用该证书的服务的关键环节,若跳过此步骤,通常会导致续订看似未生效。
使用 FortiOS 自带的 ACME 支持功能,因此无需借助任何外部客户端:先绑定一个面向互联网接口的 ACME 监听器,再创建一个使用 acme2 注册协议、并配置了你所用 CA 的目录 URL 和 EAB 凭据的证书对象。内容涵盖此功能所需的 FortiOS 版本,以及仍需借助外部客户端的情形,例如通配符证书。
如何在群晖(Synology)NAS 上安装 ACME SSL 证书
在另一台 Linux 主机上使用 acme.sh 配合 DNS 验证方式,因为 NAS 通常处于 NAT 之后,随后使用 acme.sh 内置的 DSM 部署钩子,将每次续订自动推送到该 NAS 中。内容涵盖该钩子读取的环境变量名称——这些名称区分大小写,且与旧版教程中所示的名称并不相同。
在另一台 Linux 主机上使用 acme.sh 配合 DNS-01 验证方式,并结合 acme.sh 内置的 TrueNAS 部署钩子,该钩子会在每次续订时导入证书并将其分配给 Web 界面使用。内容涵盖如何创建该钩子用于身份验证的 API 密钥、应针对哪个 TrueNAS 版本,以及 TrueNAS CORE 目前的现状。
这是一份在客户端出现故障时使用的故障排查指南。ACME 错误并不局限于特定客户端:每个客户端报告的都是 RFC 8555 中定义的机器可读错误类型,而该类型能告诉你到底是哪一环出了问题——是你的客户端与 CA 之间的通信、CA 尝试连接或解析你的服务器、针对域名本身的策略性判定,还是某种值得重试的临时性故障。内容逐一涵盖每种常见错误类型的真实原因及其解决方法。

