FreeSSL实现域名证书免费无限自动续签续期流程

实现自动续期后,您完全不需要在证书临期时手动复制新的PEM文件到服务器并刷新配置。系统会在证书到期前自动完成续期、下载新证书、并重新加载Web服务器(如Nginx),整个过程无需人工干预。

一、FreeSSL免费证书自动续期完整流程

整个流程分为平台操作服务器配置 两部分,核心是使用ACME协议和acme.sh客户端。

第一步:在FreeSSL.cn平台获取部署命令
  1. 登录FreeSSL.cn,进入 "证书自动化" -> "域名授权"

  2. 点击 "添加" ,输入您的域名(支持通配符,如 *.example.com)。

  3. 选择验证方式(推荐DNS验证),平台会提供一个CNAME记录值。

  4. 前往您的域名服务商(如阿里云)的DNS解析控制台,添加这条CNAME记录。

  5. 返回FreeSSL平台,点击 "配置完成,立即检测" 。验证通过后,平台会生成一条专属的 ACME.sh申请证书命令,将其复制下来。

第二步:在您的服务器上安装并配置acme.sh

1.安装acme.sh客户端(以Linux服务器为例):

bash 复制代码
curl https://get.acme.sh | sh -s email=your-email@example.com

安装完成后,关闭并重新打开SSH终端 ,以使acme.sh命令生效。

2.执行申请命令

进入acme.sh目录,粘贴第一步复制的命令并执行:

bash 复制代码
cd ~/.acme.sh
./acme.sh --issue -d yourdomain.com --dns dns_dp --server https://acme.freessl.cn/v2/DV90/directory/xxxxxxx

此命令会完成证书的申请和签发。

第三步:安装证书并配置Web服务器自动重载

1.将证书安装到指定目录(以Nginx为例):

bash 复制代码
./acme.sh --install-cert -d yourdomain.com \
  --key-file /path/to/your/key.pem \
  --fullchain-file /path/to/your/cert.pem \
  --reloadcmd "systemctl reload nginx"

请将 /path/to/your/替换为您希望存放证书的实际路径。

2.修改Nginx配置 ,将 ssl_certificatessl_certificate_key指令指向上述路径。

二、自动续期如何工作?

  • 定时任务acme.sh安装时会自动创建一个Cron定时任务(通常每天运行一次),用于检查证书有效期。

  • 自动触发 :当检测到证书剩余有效期不足30天时,定时任务会自动调用续期流程。

  • 无缝更新 :续期成功获取新证书后,会自动执行您在 --reloadcmd中定义的命令(如 systemctl reload nginx),使新证书立即生效,服务无需中断。

三、重要注意事项

1.域名解析记录 :在首次配置的DNS验证记录(CNAME)请勿删除,后续自动续期时仍需使用它来验证域名所有权。

2.检查定时任务 :安装后可以执行 crontab -l查看是否存在 acme.sh的定时任务,确保其正常运行。

3.手动测试续期 :您可以执行 acme.sh --renew -d yourdomain.com --dry-run来测试续期流程是否配置正确,而不会实际更新证书。

按照以上流程配置完成后,您就可以"一劳永逸",享受全自动的免费HTTPS证书管理了。

四、实操举例

注意:在创建新的Nginx配置文件时,您仍然需要明确指定SSL证书的路径。

原因说明:

1.职责分离

  • acme.sh(自动续期工具)的职责 是:在证书到期前,自动从证书颁发机构(CA)获取新证书,并覆盖 您指定路径(如/etc/nginx/ssl/blog.com/)下的.pem.key文件,然后执行reloadcmd重载Nginx。
  • Nginx配置文件的职责 是:明确告诉Nginx服务器,从哪里读取SSL证书和私钥文件,以启用HTTPS。

2.自动续期的便利性体现在

  • 文件自动更新 :您无需手动下载、复制、粘贴新的证书内容。acme.sh会自动用新文件覆盖旧文件。
  • 服务自动重载:通过--reloadcmd参数,Nginx会自动重新加载配置,使新证书立即生效,服务无需重启。

五、为未来的新站点配置建议

当您为另一个新域名(例如 blog.com)配置HTTPS时,流程是类似的:

1.申请并安装证书 :使用acme.shblog.com申请证书,并使用--install-cert命令将其安装到新的、独立的目录,例如:

bash 复制代码
./acme.sh --install-cert -d blog.com \
  --key-file /etc/nginx/ssl/blog.com/blog.com.key \
  --fullchain-file /etc/nginx/ssl/blog.com/blog.com.pem \
  --reloadcmd "systemctl reload nginx"

2.创建Nginx配置文件 :为您的新站点(blog.com)创建一个新的配置文件(如/etc/nginx/conf.d/blog.conf)。必须包含以下关键部分:

  • server_name指令后的域名。
  • ssl_certificate和 ssl_certificate_key的路径,指向新域名的证书目录。
  • location等块内的应用代理地址(如果需要)。
bash 复制代码
server {
    listen 443 ssl;
    server_name blog.com; # 改为新域名

    # SSL证书路径 ------ 必须改为新域名的证书路径!
    ssl_certificate /etc/nginx/ssl/blog.com/blog.com.pem;
    ssl_certificate_key /etc/nginx/ssl/blog.com/blog.com.key;

    # ... 其他配置 ...
}

六、最佳实践总结

  • 路径模板化 :为每个域名使用统一的路径格式,如 /etc/nginx/ssl/域名/域名.pem,便于管理。

  • 一劳永逸 :每个域名只需在初次配置时,一次性完成acme.sh安装证书和Nginx配置编写。之后该域名的证书更新将完全自动化。

  • 检查配置 :每次新增或修改Nginx配置后,执行 nginx -t测试语法,确认无误后再 systemctl reload nginx重新加载。

相关推荐
Titan20242 小时前
Linux工具(入门)笔记
linux·笔记·学习
代码AC不AC2 小时前
【Linux】ext 文件系统
linux·文件系统·ext 文件系统
暴力求解2 小时前
Linux---进程(八)程序地址空间(虚拟地址空间)
linux·运维·服务器
cyber_两只龙宝2 小时前
Tomcat--企业级web应用服务器详细介绍与整合Nginx配置流程
linux·运维·前端·nginx·云原生·tomcat·负载均衡
A.A呐2 小时前
【Linux第十章】进程控制
linux
开开心心就好2 小时前
内存清理软件灵活设置,自动阈值快捷键清
运维·服务器·windows·pdf·harmonyos·risc-v·1024程序员节
waves浪游2 小时前
库制作与原理(上)
linux·运维·服务器·开发语言·c++
wefg12 小时前
【Linux】进程地址空间的内核空间
linux·运维·服务器
dustcell.2 小时前
高性能web服务器
android·服务器·前端