宝塔Linux面板自动续签的证书是 Let’s Encrypt 品牌的,且自动续签不稳定;本次教程是利用 FreeSSL ACME v2自动化签发 TrustAsia(亚洲诚信证书) 的SSL 证书。
第一步:注册账号
FreeSSL.cn 是一个免费提供 HTTPS 证书申请、HTTPS 证书管理和 HTTPS 证书到期提醒服务的网站,旨在推进 HTTPS 证书的普及与应用,简化证书申请的流程。通过注册 FreeSSL.cn 账号,可以对申请的证书进行保存和在线管理。
第二步:添加域名
进入FreeSSL ACME 自动化步骤后台后,添加域名
获得域名验证(DCV)授权信息
到您的域名解析服务商添加解析记录,下面以DNSPod为例:
做好之后,回到域名配置这里,看到acme.sh部署命令,这里先复制命令,保存,待会儿后面会用到。
第三步:安装acme.sh
我是直接在 root 下操作的,非 root 用户可能安装后会有些问题,建议用命令 sudo su 切换至 root 用户操作。
通过ssh登录到服务器后,输入命令:sudo su 切换至root用户权限,然后输入下面命令开始安装
curl https://get.acme.sh | sh -s [email protected]
把 [email protected]
改成自己的邮箱
如果你的服务器是国内的,可以选用下面的安装方式
git clone https://gitee.com/neilpang/acme.sh.git cd acme.sh ./acme.sh --install -m [email protected]
安装成功后,会为你自动创建定时任务, 如果快过期了, 需要更新, 则会自动更新证书。
默认情况下,证书将每60天更新一次。
退出ssh,并重新登录服务器,这一步不要漏掉,退出后再重登acme才会生效
查看acme是否安装好,输入命令:
acme.sh -v
第四步:申请SSL证书
将之前复制的acme.sh部署命令,开始运行
# 如果域名有通配符,错误的命令示范
acme.sh --issue -d *.normalcoder.com --dns dns_dp --server https://acme.freessl.cn/v2/DV90/directory/********************
# 如果域名有通配符,正确的命令示范
acme.sh --issue -d \*.normalcoder.com --dns dns_dp --server https://acme.freessl.cn/v2/DV90/directory/********************
第五步:部署证书
部署证书分两种情况,一种是你刚新建的网站,第一次添加ssl证书,另一种是你已经添加过ssl,本次只是更换新的ssl证书
一、首次添加ssl证书
1、在宝塔面板中,找到文件管理,找到刚申请的证书文件;
fullchain.cer #证书
xx.com.key #密钥
打开文件,复制证书和秘钥,手动添加至网站设置里面的ssl证书设置里。
2、打开配置文件,查看宝塔证书路径
3、部署自动续签命令
# 安装证书到 Nginx
acme.sh --install-cert -d example.com \
--key-file /www/server/panel/vhost/cert/example.com/privkey.pem \
--fullchain-file /www/server/panel/vhost/cert/example.com/fullchain.pem \
--reloadcmd "service nginx reload"
请将里面的域名部分,替换为你自己的域名。
二、替换更新ssl证书
直接找到网站配置文件,如上面的截图中所示,找到对应的ssl路径,然后部署自动续签命令
# 安装证书到 Nginx
acme.sh --install-cert -d example.com \
--key-file /www/server/panel/vhost/cert/example.com/privkey.pem \
--fullchain-file /www/server/panel/vhost/cert/example.com/fullchain.pem \
--reloadcmd "service nginx reload"
如果重启nginx服务出错,如图所示,则自己手动重启一下nginx
最后,检查定时任务是否添加,查看定时任务命令
crontab -l
如图所示就成功了,至此,利用 FreeSS ACME v2 自动化签发 SSL 证书完成。