使用 ZeroSSL 免费 SSL 证书手动部署到 Nginx(90 天证书 + DNS 验证完整教程)

使用 ZeroSSL 免费 SSL 证书手动部署到 Nginx(90 天证书 + DNS 验证完整教程)

很多开发者、站长常用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 验证完整教程)-微生之最

2. 选择90天免费证书有效期

在证书有效期选项中,明确选择「90天免费版」,避免误选付费套餐,这是ZeroSSL免费证书的核心优势,无需付费即可获得合法SSL证书,满足个人站长、小型网站的HTTPS需求。

图片[2]-使用 ZeroSSL 免费 SSL 证书手动部署到 Nginx(90 天证书 + DNS 验证完整教程)-微生之最

3. 重点规避:取消所有付费选项(关键步骤)

⚠️ 重点注意:在证书创建过程中,一定要取消勾选「Pay Yearly」或任何带有“付费”“订阅”字样的选项,否则会被引导至付费订阅流程,无法获取免费证书。保持默认配置,一路点击「Next Step」,直至进入验证方式选择页面。

图片[3]-使用 ZeroSSL 免费 SSL 证书手动部署到 Nginx(90 天证书 + DNS 验证完整教程)-微生之最

二、DNS验证域名(推荐方式,稳定无依赖)

SSL证书申请的核心步骤是域名验证,ZeroSSL支持HTTP验证和DNS验证,其中DNS验证更稳定、更省心,不依赖Web服务是否正常运行,无需修改服务器文件,尤其适合服务器已有HTTPS配置、无法临时关闭443端口的场景。

1. 选择DNS验证方式

在验证方式选择页面,点击「DNS Validation」(DNS验证),确认选择后,ZeroSSL会生成对应的TXT解析记录,用于验证域名归属权。

图片[4]-使用 ZeroSSL 免费 SSL 证书手动部署到 Nginx(90 天证书 + DNS 验证完整教程)-微生之最

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 验证完整教程)-微生之最

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检测工具),输入域名进行检测,若显示“证书有效”“协议安全”,则说明配置无问题,可正常使用。
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
嘀哩 抢沙发

请登录后发表评论

    暂无评论内容