仅作记录,以备后用
我的域名是在腾讯云买的,DNS也是用的腾讯云DNSPod,所以一开始申请SSL证书的时候也顺理成章地在DNSPod上弄的
但是DP只有单域名免费证书,而且有效期从原来的一年缩减至了三个月
到期在即,就干脆换成了Let’s Encrypt的泛域名证书,使用acme.sh
自动更新证书
安装acme.sh
推荐使用root用户安装,因为网站一般是部署在/var/www/
下面,涉及权限
1 | curl https://get.acme.sh | sh -s email=my@example.com |
修改CA服务器为Let’s Encrypt
1 | acme.sh --set-default-ca --server letsencrypt |
生成证书
acme.sh
验证分http验证和dns验证,我是在已有SSL配置的基础上,修改证书,且是要泛域名证书,所以我选择的是自动DNS验证。
http验证简单说一下
1 | # webroot模式 |
申请DNS API
以DNSPod为例,创建一个API,记下Id和Token,写入环境变量
1 | export DP_Id="12345" |
生成证书
1 | acme.sh --issue --dns dns_dp -d *.example.com |
安装证书
acme.sh配置
1 | # Nginx |
至此,acme.sh
已经记录下所有参数(包括DNS API Id&Token),将来证书快过期的时候就会自动更新,把证书copy到指定的目录下,并让nginx重载证书
修改Nginx配置
接下来只要修改Nginx读取的证书就可以了 因为我是替换而不是初次配置
1 | # 需要修改的地方 |
1 | # 我个人的更完整的SSL相关配置 |
然后Nginx重载一下证书就好了