用Acme.sh脚本自动更新网站SSL证书

        关于Acme.sh脚本使用,网上有很多教程文章,当然也可以看官方文档。本文仅记录自己这个blog及同VPS下的子域名,acme.sh更换SSL证书所用到的命令

curl https://get.acme.sh |sh -s email=yangkeli@126.com    #安装acme.sh脚本,并用邮箱注册
source ~/.bashrc    #更新环境变量
acme.sh --upgrade --auto-upgrade    #开启脚本自身的自动升级
acme.sh --set-default-ca --server  letsencrypt    #更换CA机构为lets'encrypt,默认是ZeroSSL
cat /etc/nginx/conf.d/www.hcrbbs.top.conf    #此处是查看一下最初nginx配置ssl证书及key用了什么文件名,可忽略
export Ali_Key="LTAI********************"       #声明阿里API的变量,这里用的是阿里的"ali"
export Ali_Secret="Wc0P************************"    #同上,声明阿里API的secret值
acme.sh --issue --dns dns_ali -d www.hcrbbs.top        #为www.hcrbbs.top申请ssl证书
acme.sh --issue --dns dns_ali -d xyx.hcrbbs.top        #为xyx.hcrbbs.top申请证书
acme.sh --list        #查看下申请的证书
acme.sh --install-cert -d www.hcrbbs.top --ca-file /etc/nginx/cert/ca.cer --key-file /etc/nginx/cert/www.hcrbbs.top.key --cert-file /etc/nginx/cert/www.hcrbbs.top.crt --fullchain-file /etc/nginx/cert/www.hcrbbs.top.pem --reloadcmd "service nginx force-reload"        #安装www的证书,这里,同时安装了CA证书到nginx的证书配置存放目录。
acme.sh --install-cert -d xyx.hcrbbs.top --key-file /etc/nginx/cert/xyx.hcrbbs.top.key --cert-file /etc/nginx/cert/xyx.hcrbbs.top.crt --fullchain-file /etc/nginx/cert/xyx.hcrbbs.top.pem --reloadcmd "service nginx force-reload"        #安装xyx的证书,不用重复ca证书。fullchain证书才是nginx配置需要的域名证书。
vi /etc/nginx/conf.d/     #编辑下配置文件,主要修改"ssl_trusted_certificate"行的CA证书对应的文件名。似乎不修改也没问题。
vi /etc/nginx/conf.d/www.hcrbbs.top.conf    #同上
systemctl restart nginx        #重启nginx

        由于Acme.sh脚本,会自动添加系统运行环境变量,自动添加cron定时任务以自动更新SSL证书,自此,就不用管了。

2025 6月 11