0. 前言(废话)

由于盈脉是一位很懒的人,为了方便偷懒,自己的小网站一直使用宝塔面板管理,但是“事情总会出错”,宝塔面板的Let's Encrypt证书续签经常出现奇奇怪怪的错误甚至能超出LE的重试次数导致被封禁一个月:(
于是本人打算使用其它方式拯救一下我的SSL,毕竟没有人想给自己的域名一个一个的手动申请HTTPS证书吧,并且实现宝塔上的证书同步自动更新。
p.s.这里证书我并没有选择喜闻乐见的Let's Encrypt官方签发通道,而是使用了 freessl.cn 提供的亚洲诚信签发通道,当然,如果你想用LE的话只需要跳过我配置freessl的步骤就可以了。(本人使用Ubuntu系统,所以部分命令前会有sudo ,请视情况添加)

1. 申请TrustAsia证书的前置准备工作

1x1 注册freessl账号

(这里使用freessl所提供的亚洲诚信证书的原因是它支持通过ACME申请多域名通配符证书。)
前往 注册 freessl账号,请妥善保管账号密码。

1x2 添加域名

打开ACME自动化,并添加想要申请的域名。
ACME自动化

注意:

  • *.yourdomain.com并不包括yourdomain.com,如有需要请同时添加;
  • 不同域名用英文半角逗号隔开,最后一个域名后不能有逗号。

1x3 添加DNS记录

添加域名后,弹出对话框提示配置DCV,
配置DCV
在您的DNS服务商处按照提示增加相应解析即可。
注:若使用CloudFlare,请关闭代理

1x4 获得ACME指令

添加后点击“配置完成,立即检测”,会给出“acme.sh 部署命令”如下:

acme.sh --issue -d yourdomain.com  --dns dns_dp --server https://acme.freessl.cn/xxxxxx

请妥善保管部署命令。

2. 安装acme.sh并申请证书

2x1 准备工作

请确保服务器已经安装curl,如未安装可执行sudo apt get install curl解决。

2x2 安装acme.sh

执行官方安装命令:

curl https://get.acme.sh | sh -s [email protected]

过程中可能会报错提示未安装某些软件导致acme.sh无法作为独立服务器运行,这里不用理会。
安装完成后为了方便后续操作,执行:

alias acme.sh=~/.acme.sh/acme.sh

2x3 申请证书

接下来只需要运行在1x4步中获取的ACME指令即可,请记下提示你的证书储存位置。
image.png

3. 接入宝塔

3x1 启用HTTPS

在宝塔中输入任意证书信息启用HTTPS,证书无需真实有效,在宝塔管理界面的站点配置文件中记下这两个文件的储存位置:
宝塔-网站-配置文件

3x2 将证书软链接至宝塔目录

(指令按照2x3和3x1中的文件路径演示,请替换为您的实际路径)
首先删除宝塔生成的证书文件:

sudo rm /www/server/panel/vhost/cert/123.5/fullchain.pem
sudo rm /www/server/panel/vhost/cert/123.5/privkey.pem

随后将acme.sh生成的fullchain.cer软链接至fullchain.pem,将yourdomain.com.key软链接至privkey.pem:

sudo ln -s /home/ubuntu/.acme.sh/yingmoy.com/fullchain.cer /www/server/panel/vhost/cert/123.5/fullchain.pem
sudo ln -s /home/ubuntu/.acme.sh/yingmoy.com/yingmoy.com.key /www/server/panel/vhost/cert/123.5/privkey.pem

3x3 禁用宝塔自动续签

随后在宝塔侧边栏“计划任务”中找到“续签Let's Encrypt证书”将其停用即可(若没有请忽略):
停用宝塔自动续签

4. Enjoy~

请享受不会过期(自动续期)的SSL证书吧!

最后修改:2023 年 11 月 06 日
如果觉得我的文章对你有用,请随意赞赏