ssl证书自动续期
安装acme.sh
curl https://get.acme.sh | sh
# 国内
curl https://gitee.com/neilpang/acme.sh | sh
source ~/.bashrc
# 开启自动升级
acme.sh --upgrade --auto-upgrade
升级CA
yum update ca-certificates
将acme切换到Let’s Encrypt的CA
acme.sh --set-default-ca --server letsencrypt
签发证书
因为我的nginx 443反代到一个网站,80端口是空闲的,所以我下面使用的是acme.sh伪装自己为一个webserver的方式,其他方式
防火墙放开80端口
安装socat
yum install socat
签发证书
acme.sh --issue -d 需要签发的域名 --standalone
安装证书到指定目录,并执行新域名后需要重启的应用,如xray,nginx。acme.sh将记住操作并
~/.acme.sh/acme.sh --install-cert -d 需要签发的域名 \
--key-file /usr/local/nginx/ssl/需要签发的域名.key \
--fullchain-file /usr/local/nginx/ssl/需要签发的域名.key.pem \
--reloadcmd "service nginx force-reload"
(一个小提醒, 这里用的是 service nginx force-reload
, 不是 service nginx reload
, 据测试, reload
并不会重新加载证书, 所以用的 force-reload
)
Nginx 的配置 ssl_certificate
使用 /etc/nginx/ssl/fullchain.cer
,而非 /etc/nginx/ssl/<domain>.cer
,否则 SSL Labs 的测试会报 Chain issues Incomplete
错误。
--install-cert
命令可以携带很多参数, 来指定目标文件. 并且可以指定 reloadcmd, 当证书更新以后, reloadcmd会被自动调用,让服务器生效。
查看定时任务确保会自动执行
crontab -l
查看已安装的证书信息
acme.sh --info -d 需要签发的域名
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ALLBS!
评论