LanZX Blog

Back

使用 acme.sh 自动验证为域名签发证书#

本文记录在服务器端 通过 FinalShell 操作,使用 acme.sh + DNSPod.cn 的 DNS 自动验证方式 为域名申请并管理 HTTPS 证书的完整配置流程。整体流程偏向实用与可复现,适合日常服务器维护与长期证书管理。


一、准备条件#

在开始之前,请确认你已具备以下条件:

  • 一台 Linux 服务器(常见如 CentOS / Ubuntu)
  • 已安装并可正常使用 FinalShell 连接服务器
  • 一个已备案/可解析的域名
  • 域名托管在 DNSPod.cn
  • DNSPod 账号的 API 密钥(ID + Token)

DNS 自动验证的优势在于:

  • 不依赖服务器 80 / 443 端口
  • 适合内网、未部署 Web 服务的服务器
  • 支持泛域名证书(*.example.com

二、安装 acme.sh#

安装 acme.sh 非常简单,一条命令即可完成,普通用户和 root 用户都可以安装和使用

方式一:使用 curl(推荐)#

curl https://get.acme.sh | sh -s email=my@example.com
bash

方式二:使用 wget#

wget -O - https://get.acme.sh | sh -s email=my@example.com
bash

email 用于接收证书过期或异常通知,建议填写真实常用邮箱。

安装完成后,重新加载环境变量:

source ~/.bashrc
bash

验证是否安装成功:

acme.sh --version
bash

默认安装路径:

~/.acme.sh/
text

三、DNSPod 这边需要做什么?#

在服务器动手之前,先把 DNSPod 后台这件事处理好


1. 确认域名托管在 DNSPod#

先打开 DNSPod 控制台


2. 创建 DNSPod API Token#

进入 DNSPod 控制台后:

  1. 打开 账号中心 / API 密钥管理
  2. 创建一个新的 API Token

创建完成后,你会得到两项信息:

  • DP_Id
  • DP_Key

这两个值只会完整显示一次,建议当场保存好。

结果 图中ID为DP_Id Token为DP_Key


四、在服务器里配置 DNSPod API#

网页端准备好之后,回到服务器,才轮到 acme.sh 登场。

1. 配置#

在 FinalShell 里执行:

export DP_Id="你的DNSPod_ID"
export DP_Key="你的DNSPod_Token"
bash

将服务器与poddns连接


四、使用 DNS 自动验证申请证书#

1. 申请单域名证书#

acme.sh --issue --dns dns_dp -d example.com
bash

2. 申请泛域名证书(推荐)#

acme.sh --issue --dns dns_dp -d example.com -d '*.example.com'
bash

acme.sh 会自动完成以下操作:

  • 调用 DNSPod API
  • 添加 _acme-challenge TXT 记录
  • 验证完成后自动清理 DNS 记录

整个过程无需手动干预。


五、查看证书文件位置#

证书生成后默认存放在:~/.acme.sh/example.com_ecc/ 下 结果

六、安装证书#

找到证书进行安装即可

使用 acme.sh 自动验证为域名签发证书
https://blog.lanzx.top/blog/acme-sh
Author LanZX
Published at December 14, 2025