使用 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(推荐)

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

方式二:使用 wget

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

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

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

1
source ~/.bashrc

验证是否安装成功:

1
acme.sh --version

默认安装路径:

1
~/.acme.sh/

📸 配图建议

  • FinalShell 中执行安装命令的终端截图
  • 成功输出 acme.sh --version 的结果截图

三、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 里执行:

1
2
export DP_Id="你的DNSPod_ID"
export DP_Key="你的DNSPod_Token"

将服务器与poddns连接


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

1. 申请单域名证书

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

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

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

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

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

整个过程无需手动干预。


五、查看证书文件位置

证书生成后默认存放在:~/.acme.sh/example.com_ecc/ 下
图片呢?

六、安装证书

找到证书进行安装即可