让SSL证书的申请自动化

以acme.sh为例

Posted by SmallFang on 2025-10-06
Estimated Reading Time 2 Minutes
Words 618 In Total
Viewed Times

可以实现自动续签证书的办法有很多。我在这里以FreeSSL和域名’demo.smallfang.us’为例,演示如何配置。

安装acme.sh脚本

首先,安装curl。
Ubuntu/Debian:
apt-get install curl
CentOS:
yum install curl

然后,执行:
curl https://get.acme.sh | sh
source ~/.bashrc

即完成了安装。

完成域名所有权验证

首先,打开https://freessl.cn/ ,并注册一个账户。
注册完成后,进入证书自动化=>域名授权,后点击添加域名
4.png

在‘域名’一栏填入你将要使用的域名,‘记录类型’选择CNAME,然后点击下一步。
5.png

获取到要求的主机记录和记录值。
6.png

随后打开你的域名托管系统(我以Cloudflare为例),在你对应的域名下加入要求的值。
7.png

填写完验证信息之后点击关闭即可。
8.png

申请证书

进入ACME客户端一栏,并点击申请证书
9.png

选择刚刚添加过记录值的域名,并点击下一步。
10.png

在FreeSSL提供的两种命令中,复制第一个(即调用acme.sh的那条指令)命令,并执行于服务器中。
11.png
得到以下返回信息,即说明成功。
12.png
13.png

迁移证书

acme.sh的官方文档中提到,脚本默认的保存路径仅供内部测试使用,不适合部署于生产环境。因此,我们需要将获取的证书迁移到别的文件夹。
命令模板:

1
2
3
acme.sh --install-cert -d example.com \
--key-file /path/to/keyfile/key.pem \
--fullchain-file /path/to/fullchain/cert.pem \

注意:
第一 将第1行的’examlple.com’更改为自己的域名。
第二 将第2行和第3行的路径改为你想要存放证书的路径。

例如,我应该将指令改为:

1
2
3
acme.sh --install-cert -d demo.smallfang.us \
--key-file /root/certs/demo.smallfang.us-key.pem \
--fullchain-file /root/certs/demo.smallfang.us-cert.pem \

执行后即可完成迁移证书。

至此,可自动续签的域名证书申请与配置已经完成。

其他操作补充

从管理目录中删除域名

1
acme.sh --remove -d example.com

将“example.com”替换为对应域名。

在更新证书后自动执行某一操作

1
acme.sh --install-cert -d example.com --reloadcmd  "%%%%%%"

将“example.com”替换为对应域名。
将“%%%%%%”替换为你想要其自动执行的命令。

最后

写文章不易,如果有帮助的话就请在此页面的最下方点击“star”按钮进入我的仓库为我点上一颗star吧~


SmallFang的博客网站。欢迎与我联系。邮箱:sfxf09@gmail.com