很多开发者、站长常用acme.sh自动续签SSL证书,但常会遇到自动续签失效的问题,排查脚本、权限、Cron任务耗时费力。今天分享一套更省心的方案——ZeroSSL免费SSL证书手动部署到Nginx,90天免费有效期,搭配DNS验证稳定无坑,步骤详细可直接照做,新手也能快速上手,同时记录完整流程,方便后续续签复用。
ZeroSSL是全球热门的免费SSL证书服务商,支持90天免费证书申请,手动部署流程简单,无需复杂脚本,DNS验证方式适配各类服务器环境,尤其适合已有HTTPS配置、不想折腾自动续签的用户,轻松实现网站HTTPS加密。
一、ZeroSSL 免费SSL证书申请流程(90天免费,无付费陷阱)
1. 访问ZeroSSL官网,填写目标域名
打开ZeroSSL官方网站,在证书申请入口输入需要配置HTTPS的域名,支持单域名、多域名(如www.xxx.com和xxx.com),输入后点击下一步,进入证书配置页面。
![图片[1]-使用 ZeroSSL 免费 SSL 证书手动部署到 Nginx(90 天证书 + DNS 验证完整教程)-微生之最](https://cos.swszz.cn/2026/02/20260206211926554-1024x802.webp)
2. 选择90天免费证书有效期
在证书有效期选项中,明确选择「90天免费版」,避免误选付费套餐,这是ZeroSSL免费证书的核心优势,无需付费即可获得合法SSL证书,满足个人站长、小型网站的HTTPS需求。
![图片[2]-使用 ZeroSSL 免费 SSL 证书手动部署到 Nginx(90 天证书 + DNS 验证完整教程)-微生之最](https://cos.swszz.cn/2026/02/20260206212010345-1024x698.webp)
3. 重点规避:取消所有付费选项(关键步骤)
⚠️ 重点注意:在证书创建过程中,一定要取消勾选「Pay Yearly」或任何带有“付费”“订阅”字样的选项,否则会被引导至付费订阅流程,无法获取免费证书。保持默认配置,一路点击「Next Step」,直至进入验证方式选择页面。
![图片[3]-使用 ZeroSSL 免费 SSL 证书手动部署到 Nginx(90 天证书 + DNS 验证完整教程)-微生之最](https://cos.swszz.cn/2026/02/20260206212039478.png)
二、DNS验证域名(推荐方式,稳定无依赖)
SSL证书申请的核心步骤是域名验证,ZeroSSL支持HTTP验证和DNS验证,其中DNS验证更稳定、更省心,不依赖Web服务是否正常运行,无需修改服务器文件,尤其适合服务器已有HTTPS配置、无法临时关闭443端口的场景。
1. 选择DNS验证方式
在验证方式选择页面,点击「DNS Validation」(DNS验证),确认选择后,ZeroSSL会生成对应的TXT解析记录,用于验证域名归属权。
![图片[4]-使用 ZeroSSL 免费 SSL 证书手动部署到 Nginx(90 天证书 + DNS 验证完整教程)-微生之最](https://cos.swszz.cn/2026/02/20260206212356223.webp)
2. 在域名解析平台添加TXT记录
按照ZeroSSL提供的提示,登录你的域名服务商(如阿里云、腾讯云、Cloudflare等),进入域名解析管理页面,添加一条TXT类型的解析记录,具体参数如下:
- 记录类型:TXT
- 主机记录:_acme-challenge(固定不变,ZeroSSL统一要求)
- 记录值:复制ZeroSSL生成的字符串(每一个域名对应唯一字符串,不可修改)
- TTL:默认即可(建议设置为600秒,加快生效速度)
添加完成后,等待DNS解析生效,通常需要1~5分钟,个别DNS服务商可能需要10~30分钟,可通过DNS查询工具验证解析是否生效。
三、下载并处理Nginx专用SSL证书文件(避免浏览器报错)
域名验证成功后,ZeroSSL会生成对应服务器类型的证书文件,我们选择「Nginx」类型下载,解压后可获得3个核心文件,这一步的关键是合并证书链,否则浏览器会提示“证书不完整”,影响访问体验。
![图片[5]-使用 ZeroSSL 免费 SSL 证书手动部署到 Nginx(90 天证书 + DNS 验证完整教程)-微生之最](https://cos.swszz.cn/2026/02/20260206212453796-1024x769.webp)
1. 解压后核心文件说明
- certificate.crt:域名证书文件(核心证书)
- ca_bundle.crt:证书链文件(用于验证证书合法性)
- private.key:私钥文件(用于Nginx配置,不可泄露)
2. 合并证书链(必做步骤)
ZeroSSL的免费证书需要手动合并证书链,将ca_bundle.crt的内容复制追加到certificate.crt中,生成新的证书文件,具体命令如下(以域名yubodna.com为例):
cat certificate.crt ca_bundle.crt > yubodna.com.crt
说明:合并后生成的yubodna.com.crt文件,将作为Nginx配置中的ssl_certificate参数;private.key私钥文件保持不变,无需修改。
四、上传证书并配置Nginx(完整配置示例,直接复用)
证书处理完成后,上传至Nginx服务器,按规范配置目录结构,再修改Nginx配置文件,开启HTTPS,步骤清晰,可直接照搬配置。
1. 上传证书到服务器(规范目录,便于维护)
推荐使用以下目录结构,统一管理SSL证书,后续续签、更换证书更方便,避免混乱:
/etc/nginx/ssl/
├── yubodna.com.crt(合并后的证书文件)
├── yubodna.com.key(私钥文件)
可通过FTP、SCP等工具,将合并后的证书文件和私钥文件上传至该目录,确保文件权限正确(建议设置为600,避免泄露私钥)。
2. Nginx SSL完整配置示例(可直接修改复用)
编辑Nginx配置文件(通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/目录下),添加以下HTTPS配置,替换对应的域名和证书路径即可:
server {
listen 443 ssl http2; # 开启HTTPS和HTTP/2,提升访问速度
server_name yubodna.com; # 替换为你的目标域名
ssl_certificate /etc/nginx/ssl/yubodna.com.crt; # 合并后的证书路径
ssl_certificate_key /etc/nginx/ssl/yubodna.com.key; # 私钥路径
ssl_protocols TLSv1.2 TLSv1.3; # 启用安全的TLS协议,规避老旧协议漏洞
ssl_prefer_server_ciphers on; # 优先使用服务器端加密套件
# 网站静态文件配置(根据自身需求修改)
location / {
root /home/dist/;
index index.html index.htm;
try_files $uri $uri/ /index.html; # 适配SPA单页应用
}
# 接口代理配置(按需保留或删除)
location /prod-api/ {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /profile/ {
proxy_pass http://localhost:8080/profile/;
}
# 错误页面配置
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
提示:若需要同时支持HTTP自动跳转至HTTPS,可添加80端口的跳转配置(按需添加)。
五、重载Nginx并验证证书(确保配置生效)
1. 重载Nginx配置(避免重启服务,不影响网站运行)
配置完成后,先检查Nginx配置文件是否有语法错误,再重载配置,命令如下:
- 检查配置:
nginx -t(显示“test is successful”即为正常) - 重载配置:
systemctl reload nginx
2. 两种证书验证方式(确保部署成功)
- 方式1:浏览器验证(最直观)
- 打开浏览器,访问
https://你的域名,点击地址栏左侧的🔒图标,查看证书签发机构是否为「ZeroSSL」,若显示“连接安全”,则说明部署成功。 - 方式2:专业工具验证(更精准)
- 使用SSL Labs(全球知名SSL检测工具),输入域名进行检测,若显示“证书有效”“协议安全”,则说明配置无问题,可正常使用。
版权保护声明
尊重原创,保护知识产权

















暂无评论内容