用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证书,自此,就不用管了。

