本文最后更新于 2024-09-16,文章可能存在过时内容,如有过时内容欢迎留言或者联系我进行反馈。
前言 {#%E5%89%8D%E8%A8%80}
由于雷池WAF社区版本的证书不支持通配符域名申请,所以我们使用ACME进行域名申请并实现自动续期。下面我将用Debian 12 的系统进行演示安装ACME客户端和以及使用它完自动续期。
简介 {#%E7%AE%80%E4%BB%8B}
ACME是"Automatic Certificate Management Environment"(自动证书管理环境)的缩写,它是一种用于自动化管理和获取SSL/TLS证书的协议。ACME协议由互联网工程任务组(IETF)定义,并被Let's Encrypt等证书颁发机构广泛采用,旨在简化和自动化SSL/TLS证书的申请、更新和管理过程。
ACME协议的工作流程大致如下:
-
安装ACME客户端:首先,您需要在服务器上安装一个ACME客户端,如acme.sh或Certbot。
-
注册账户:通过客户端在证书颁发机构(CA)注册账户。
-
证明域名所有权:按照客户端指示证明您拥有要申请证书的域名,这可能涉及到在Web服务器上放置文件或更新DNS记录。
-
获取证书:一旦域名所有权得到验证,客户端将请求并获取证书。
-
配置服务器:最后,您需要配置您的Web服务器以使用新获取的证书。
ACME客户端通常支持自动续期,这意味着您可以设置客户端定期自动更新证书,避免手动干预和证书过期的风险。
如果您需要为您的网站启用HTTPS并自动管理SSL/TLS证书,ACME协议提供了一个有效的解决方案。通过使用ACME,您可以确保数据传输的安全性,同时减少管理证书的复杂性。
教程 {#%E6%95%99%E7%A8%8B}
-
根据自己的服务器系统安装
git
,执行下面命令。- CentOS / RHEL
yum install git
- Debian / Ubuntu
apt-get install git
-
安装完成后,使用
git clone
命令从 Gitee 克隆acme.sh
仓库。git clone https://gitee.com/neilpang/acme.sh.git
-
使用
cd
命令进入acme.sh
目录。cd acme.sh
-
使用
acme.sh
脚本进行安装,并指定你真实得电子邮箱。./acme.sh --install -m my@example.com
注意将
my@example.com
改为自己的真实邮箱! -
注册 <freessl.cn> 的帐号,在"证书自动化"中找到"域名授权",点击"添加域名"。
-
输入需要授权的域名,然后点击"下一步"。
-
授权验证,请根据提示,将对应信息在DNS中进行解析。
-
以腾讯云为例,供参考,请根据自己域名情况进行解析到对应DNS中。
-
配置完成以后,点击"配置完成,立即检测"。提示"域名提交成功,立即 申请证书"后点击"申请证书"。
-
选择刚刚添加的域名,然后点击"下一步"。
-
通过"点击复制",将命令复制到服务器上进行执行。
-
执行命令后,等待一分钟左右显示如下。
如果提示
acme.sh: command not found
,则需要断开服务器,重新连接后再执行。 -
找到证书中的fullchain.cer文件和 域名.key文件,下载到本地。
-
在雷池中的"证书管理"中,将刚下载的证书进行上传。
-
在雷池的安装目录中找到刚上传的证书,记录路径及证书文件名称。
-
修改以下命令,将域名替换成你自己的域名,将文件路径替换成你的证书所在的文件路径。随后将命令复制到服务器中执行。
acme.sh --install-cert -d uptoz.cn -d *.uptoz.cn -d *.minio.uptoz.com --key-file /data/safeline/resources/nginx/certs/cert_2.key --fullchain-file /data/safeline/resources/nginx/certs/cert_2.crt --reloadcmd "docker exec safeline-tengine nginx -s reload"
执行成功后,可以发现,证书的时间变化了,从此,SSL证书会自动续期,无需再管。