321 字
2 分钟
申请 Let's Encrypt 泛域名证书及自动更新证书
如果您使用的是国内 VPS 主机,需要先添加 hosts ,防止域名污染造成证书申请失败
# 修改 hosts
175.45.42.217 ocsp.int-x3.letsencrypt.org
175.45.42.209 ocsp.int-x3.letsencrypt.org
安装 acme.sh
国内主机安装
这里使用 root 账户安装,为的是方便后面定时 cronjob 运行。
# 使用 root 账户
sudo su -
git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
# 创建证书保存目录
sudo mkdir -p /etc/ssl/xxx
sudo chown ubuntu: /etc/ssl/xxx
# 将 acme.sh 安装到当前用户命令目录下
# 请将 xxx@xxx.com 替换为您的域名申请邮箱
./acme.sh --install -m xxx@xxx.com
# 这这里使用自动的 DNS 验证,因为我的域名托管在 DNSPod,如果您的域名托管在别的地方,请查阅
# https://github.com/acmesh-official/acme.sh/wiki/dnsapi
# 在上述文档中找您所在托管的服务
# 在 DNSPod 控制台中申请一个API Key,记下备用
export DP_Id="111111"
export DP_Key="xxxxxxxxx"
# 安装
acme.sh --issue --dns dns_dp -d xxx.com -d *.xxx.com \
--fullchain-file /xxx/fullchain.cer \
--key-file /xxx/xxx.key \
--reloadcmd "systemctl restart nginx"
Nginx 证书配置
ssl_certificate /[用户名]/.acme.sh/xmgspace.me/fullchain.cer; #证书路径
ssl_certificate_key /[用户名]/.acme.sh/xmgspace.me/example.com.key; #私钥路径
ssl_stapling on; #开启OCSP
ssl_stapling_verify on; #开启OCSP验证
ssl_trusted_certificate /[用户名]/.acme.sh/xmgspace.me/fullchain.cer; #验证证书路径
手动更新证书
sudo su -
acme.sh --issue --dns dns_dp -d ihsiao.com -d *.ihsiao.com --force --ecc \
--fullchain-file /xxx/fullchain.cer \
--key-file /xxx/xxx.key \
--reloadcmd "systemctl restart nginx"
Cronjob Debug
"/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" --debug
引用
申请 Let's Encrypt 泛域名证书及自动更新证书
https://fuwari.vercel.app/posts/blogs/encryptca/