本文最后更新于 2024-09-16,文章可能存在过时内容,如有过时内容欢迎留言或者联系我进行反馈。

前言

由于雷池WAF社区版本的证书不支持通配符域名申请,所以我们使用ACME进行域名申请并实现自动续期。下面我将用Debian 12 的系统进行演示安装ACME客户端和以及使用它完自动续期。

简介

ACME是"Automatic Certificate Management Environment"(自动证书管理环境)的缩写,它是一种用于自动化管理和获取SSL/TLS证书的协议。ACME协议由互联网工程任务组(IETF)定义,并被Let’s Encrypt等证书颁发机构广泛采用,旨在简化和自动化SSL/TLS证书的申请、更新和管理过程。

ACME协议的工作流程大致如下:

  1. 安装ACME客户端:首先,您需要在服务器上安装一个ACME客户端,如acme.sh​或Certbot。

  2. 注册账户:通过客户端在证书颁发机构(CA)注册账户。

  3. 证明域名所有权:按照客户端指示证明您拥有要申请证书的域名,这可能涉及到在Web服务器上放置文件或更新DNS记录。

  4. 获取证书:一旦域名所有权得到验证,客户端将请求并获取证书。

  5. 配置服务器:最后,您需要配置您的Web服务器以使用新获取的证书。

ACME客户端通常支持自动续期,这意味着您可以设置客户端定期自动更新证书,避免手动干预和证书过期的风险。

如果您需要为您的网站启用HTTPS并自动管理SSL/TLS证书,ACME协议提供了一个有效的解决方案。通过使用ACME,您可以确保数据传输的安全性,同时减少管理证书的复杂性。

教程

  1. 根据自己的服务器系统安装git​,执行下面命令。

    • CentOS / RHEL

    yum install git
    • Debian / Ubuntu

    apt-get install git

  2. 安装完成后,使用git clone​命令从 Gitee 克隆 acme.sh​ 仓库。

    git clone https://gitee.com/neilpang/acme.sh.git

  3. 使用 cd​ 命令进入 acme.sh​目录。

    cd acme.sh

  4. 使用 acme.sh​ 脚本进行安装,并指定你真实得电子邮箱。

    ./acme.sh --install -m my@example.com
    

    注意将 my@example.com​ 改为自己的真实邮箱

  5. 注册 freessl.cn 的帐号,在“证书自动化”中找到“域名授权”,点击“添加域名”。

  6. 输入需要授权的域名,然后点击“下一步”。

  7. 授权验证,请根据提示,将对应信息在DNS中进行解析。

  8. 以腾讯云为例,供参考,请根据自己域名情况进行解析到对应DNS中。

  9. 配置完成以后,点击“配置完成,立即检测”。提示“域名提交成功,立即 申请证书”后点击“申请证书”。

  10. 选择刚刚添加的域名,然后点击“下一步”。

  11. 通过“点击复制”,将命令复制到服务器上进行执行。

  12. 执行命令后,等待一分钟左右显示如下。

    如果提示acme.sh: command not found​,则需要断开服务器,重新连接后再执行。

  13. 找到证书中的fullchain.cer文件和 域名.key文件,下载到本地。

  14. 在雷池中的”证书管理“中,将刚下载的证书进行上传。

  15. 在雷池的安装目录中找到刚上传的证书,记录路径及证书文件名称。

  16. 修改以下命令,将域名替换成你自己的域名,将文件路径替换成你的证书所在的文件路径。随后将命令复制到服务器中执行。

    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证书会自动续期,无需再管。