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

Ubuntu服务器NodeJS+Nginx API出现ERR_SSL_PROTOCOL_ERROR的无域名解决方法

解决无域名下Nginx+NodeJS API的ERR_SSL_PROTOCOL_ERROR问题

首先纠正一个基础错误:你用https://xxx.xxx.xxx.xxx:80访问本身就不合理——80是HTTP默认端口,HTTPS默认用443端口,端口不匹配也会触发SSL协议错误。下面是几种无需域名的解决办法:

方案一:改用HTTP访问(无加密,适合测试/内部使用)

  • 编辑Nginx配置文件,注释掉所有SSL相关配置项(ssl_certificate、ssl_certificate_key等),将监听端口改为80:
    server {
        listen 80;
        server_name 167.xx.xx.xx;
    
        location / {
            proxy_pass http://localhost:3000; # 替换为你的NodeJS服务实际监听端口
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    
  • 重启Nginx生效:sudo systemctl restart nginx
  • 访问时直接用http://167.xx.xx.xx/get-all-products(默认80端口可省略)

方案二:生成自签名SSL证书(加密访问,适合测试/内部信任场景)

自签名证书无法被浏览器默认信任,但能解决SSL协议错误,步骤如下:

  1. 先创建证书存储目录:sudo mkdir -p /etc/nginx/ssl
  2. 生成自签名证书和私钥,Common Name必须填你的服务器IP:
    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/ip.key -out /etc/nginx/ssl/ip.crt
    
    执行时除了Common Name填167.xx.xx.xx,其他字段可直接回车留空
  3. 修改Nginx配置,监听443端口并启用SSL:
    server {
        listen 443 ssl;
        server_name 167.xx.xx.xx;
    
        ssl_certificate /etc/nginx/ssl/ip.crt;
        ssl_certificate_key /etc/nginx/ssl/ip.key;
    
        location / {
            proxy_pass http://localhost:3000; # 替换为你的NodeJS服务端口
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    
  4. 重启Nginx:sudo systemctl restart nginx
  5. 访问时用https://167.xx.xx.xx/get-all-products,浏览器会提示证书不安全,手动添加信任即可;如果是客户端程序访问,需要将该自签名证书导入客户端的信任列表。

方案三:申请IP-based免费SSL证书(适合需要公网信任的场景)

部分CA支持为公网IP颁发免费证书,但需要验证你对该IP的控制权:

  • 验证方式通常为HTTP验证:在服务器80端口的根目录下放置指定验证文件,CA会访问该IP的验证路径确认控制权
  • 申请到证书后,将证书和私钥配置到Nginx的SSL项中即可,流程和自签名证书的Nginx配置一致
  • 注意:这类证书有效期较短(一般90天),需要定期续签,且验证步骤比自签名复杂。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:18:38