为宝塔面板SSL使用acme.sh
起因
最近宝塔面板的 SSL 续签老是出问题,尤其是有一台机器手动续签 Let’s Encrypt 必出现 KeyError: 'private_key'
问题,于是想用别的方法进行续签证书。
经过查找,确认宝塔面板的 SSL 存放位置是 /www/server/panel/ssl
,证书和私钥文件分别是 certificate.pem
和 privateKey.pem
。
所以,只需要通过别的方式自动替换这两个文件就能实现续签证书了。
理论存在,实践开始
绝大多数自动化续签 SSL 都是通过 acme.sh 这个工具实现的,所以我也就顺理成章的使用了这个工具。
首先安装 acme.sh,me@example.com
是我自己的邮箱:
1 |
|
我的域名使用 Cloudflare 解析,因此使用 DNS 方式申请证书。首次使用前,需要把 Cloudflare 的账户信息加入到环境变量里,我使用的是 API 令牌的方式,执行两条命令:
1 |
|
然后执行命令申请证书:
1 |
|
实际操作过程中,我在中国大陆的服务器连不上默认的 ZeroSSL CA,因此临时使用 Let’s Encrypt 来签发证书,在命令之后加上 --server letsencrypt
参数:
1 |
|
等待证书签发,之后就可以执行部署命令了:
1 |
|
执行完后,证书就部署好了,刷新网页也能看到新申请的证书了。
根据 acme.sh 所述,证书到期前 30 天会自动续签,就看是否真的能续签成功了。
为宝塔面板SSL使用acme.sh
https://dreamvoid.me/2022/08/11/0904e4069abd/