You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows系统下Nginx无法加载SSL证书报错如何解决?

问题原因

报错核心为Nginx无法读取指定的SSL证书文件,具体触发原因如下:

  • 路径配置格式错误:你当前使用类Unix的无盘符根路径写法,Windows系统下Nginx会自动将这类路径补全为Nginx安装盘的根路径,或默认补全到C盘根目录,和你证书实际存放路径不一致就会触发找不到文件的错误。
  • 配置笔误:ssl_certificate_key配置的路径为/Users/tusername/localhost.key,和证书路径的用户名相比多了一个t字符,后续哪怕路径格式修正,密钥文件也会读取失败。
  • 文件实际不存在:可手动检查C:\Users\username\路径下是否真的存在localhost.crt和localhost.key两个文件,排查是否有文件名拼写错误、后缀名被隐藏的情况(比如实际文件为localhost.crt.txt)。
  • 权限不足:Nginx运行身份没有读取两个证书文件的权限,比如你把证书放在个人用户目录下,用系统服务身份启动Nginx时就会无权限读取。
解决步骤
  1. 修正配置路径
    你可以选择两种写法,优先推荐相对路径避免盘符变动导致配置失效:
    • 相对路径写法:把localhost.crt和localhost.key放到Nginx安装目录下的conf/cert文件夹(需手动新建cert目录),对应配置修改为:
    server {
        listen       443 ssl;
        server_name  platform.local.com;
        ssl_certificate      conf/cert/localhost.crt;
        # 修正原有路径的用户名笔误
        ssl_certificate_key  conf/cert/localhost.key;
    
        location / {
                 proxy_pass https://localhost:3001;
                 proxy_http_version 1.1;
                 proxy_set_header Upgrade $http_upgrade;
                 proxy_set_header Connection 'upgrade';
                 proxy_set_header Host $host;
                 proxy_cache_bypass $http_upgrade;
                 index  index.html index.htm;
        }
    }
    
    • 绝对路径写法:直接写全文件所在的完整路径,用正斜杠分隔即可:
    ssl_certificate      C:/Users/username/localhost.crt;
    ssl_certificate_key  C:/Users/username/localhost.key;
    
  2. 校验文件权限:右键点击两个证书文件,选择「属性」-「安全」,给运行Nginx的用户(管理员启动就给Administrators组,系统服务启动就给SYSTEM用户)添加「读取」权限。
  3. 重启Nginx生效:打开Nginx安装目录的命令行窗口,执行nginx -t验证配置是否正确,提示test is successful后,再执行nginx -s reload重启Nginx即可。

内容的提问来源于stack exchange,提问作者Festina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 09:27:03