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_certificate和 ssl_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.sh为blog.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重新加载。

相关推荐
春涧草茶19 分钟前
慢就是快12-12手动抛出异常
java·linux·前端
KING-WU5122 小时前
Linux 工具之Make 与 Makefile
java·linux·服务器
阿乔外贸日记2 小时前
全球电子产业高度集中:中、韩、日和中国台湾地区占全球数字硬件产能八成
大数据·服务器·人工智能·物联网·云计算
Lsetea2 小时前
OpenSSL报certificate is not yet valid:error 9与notBefore时间排查
linux·运维·https·ssl证书·openssl
魔法阵维护师2 小时前
Linux 命令行入门踩坑记录:从 VMware 装系统到文件管理
linux·运维·服务器
qq_543447822 小时前
DNS解析怎么排查?故障处理与运维实用手册
运维·服务器·网络·php
DeviceHub2 小时前
AI服务器电源设计进阶:TLVR电感的应用解析与选型验证指南
运维·服务器·人工智能
Apipi*2 小时前
30天速通Linux 第七章进程间通信
linux·运维·服务器
emo_2b2 小时前
Pycharm配置conda解释器时遇到的问题及解决方法
linux·pycharm·conda
极光通讯3 小时前
服务器内存替代料选型方法论:主料号缺货时如何找到Pin-to-Pin兼容型号
运维·服务器