使用 acme.sh 申请 DNSPod 通配符 SSL 证书
目录
[!说明] 以**
DNS**方式可以申请通配符证书,如果有多个子域名的情况时,只需要申请一次即可。
创建DNSPod Token #
[!说明] 本章节使用腾讯云服务进行配置,如果你是在其他云服务商,应该只有创建密钥的方式有区别,后续操作和所属的云服务商应该就没有关系了。请根据你自己所属的云服务商进行灵活调整。
登陆腾讯云DNSPod控制台,新增DNSPod Token,界面如下图所示,注意保存Token,后续无法再次查看,只能重新创建。
申请证书 #
acme.sh 实现了 acme 协议,可以从 ZeroSSL,Let's Encrypt 等 CA 生成免费的证书。
安装 #
# 下载并执行安装脚本,同时注册账号
curl https://get.acme.sh | sh -s email=your_email@domain.com
# 安装完成后,因为acme.sh在.zshrc配置文件中添加了acme.sh的alias,需要使配置生效
source ~/.zshrc
配置 #
# 进入acme.sh的安装目录
cd ~/.acme.sh
# 编辑account.conf文件,添加如下配置并保存,下面是我已经在DNSPod创建好的id和key,直接使用即可
export DP_Id="your_dnspod_token_id"
export DP_Key="your_dnspod_token"
SAVED_DP_Id='your_dnspod_token_id'
SAVED_DP_Key='your_dnspod_token'
# 设置默认的证书颁发机构为 Let's Encrypt[reference:10][reference:11]
acme.sh --set-default-ca --server letsencrypt
申请 #
使用DNS的方式申请域名的通配符域名证书,申请大约需要等待一分钟,申请成功后你会在终端看到绿色的 “Cert success” 字样
acme.sh --issue --dns dns_dp -d example.com -d '*.example.com'
使用证书 #
如果你使用Nginx对你的服务进行反代,那么,可以将证书安装到Nginx的目录
# 创建证书存放目录
mkdir -p /path/to/your/nginx/ssl/example.com
# 安装证书并重载nginx
acme.sh --install-cert -d example.com \
--key-file /path/to/your/nginx/ssl/example.com/privkey.pem \
--fullchain-file /path/to/your/nginx/ssl/example.com/fullchain.pem \
--reloadcmd "systemctl reload nginx"
自动续期 #
acme.sh支持自动续期,只需要在安装过证书后,执行下列命令即可
acme.sh --install-cronjob