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

如何在Nginx上禁用SSL检查(QA服务器证书过期场景)

如何在Nginx上禁用SSL检查(QA服务器证书过期场景)

兄弟,我太懂你这种QA服务器不想折腾SSL证书的心情了——毕竟只是测试用,续证纯粹浪费时间。咱们直接把Nginx改成纯HTTP服务,彻底绕开SSL那套就行,一步步来解决你的问题:

  • 第一步:彻底修改Nginx的HTTP监听配置
    你原来的配置里虽然监听了80端口,但又强制跳转到HTTPS,这就是为啥浏览器还在走SSL的原因。把那段配置改成纯HTTP的,删掉所有SSL相关的指令,示例如下:

    server {
        listen 80;
        server_name mydomain.com www.mydomain.com;
    
        # 保留你原来的业务配置,比如静态文件托管或者反向代理到后端
        location / {
            proxy_pass http://你的后端服务地址; # 比如http://localhost:3000
            # 其他原有proxy_set_header之类的配置保留即可
        }
    
        # 针对你报错里的WebSocket请求,单独配置HTTP协议的转发
        location /ws/ {
            proxy_pass http://你的后端WebSocket服务地址:46;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    }
    
  • 第二步:删除/注释掉443端口的SSL监听配置
    你提到还有443端口的监听配置,直接把整个listen 443 ssl;开头的server块删掉,或者用#注释掉,这样Nginx就不会处理任何HTTPS请求了。

  • 第三步:解决混合内容报错
    你遇到的Mixed Content错误,是因为前端页面可能还在调用HTTPS的资源(比如WebSocket地址)。解决办法有两个:

    1. 如果前端还能重新打包,直接把项目里的API、WebSocket基础地址从https://example.com改成http://example.com
    2. 如果已经打包没法改代码,就在Nginx的location里加内容替换,自动把页面里的HTTPS地址换成HTTP:
      location / {
          proxy_pass http://你的后端服务地址;
          sub_filter 'https://example.com' 'http://example.com';
          sub_filter_once off; # 替换所有匹配的内容
      }
      
  • 第四步:重启Nginx生效
    先检查配置有没有语法错误:

    sudo nginx -t
    

    没问题的话重启Nginx:

    sudo systemctl restart nginx
    

    (如果是老系统,用sudo service nginx restart也行)

最后提醒下:如果之前浏览器缓存了HTTPS的跳转规则,记得清一下缓存或者用无痕模式测试,避免浏览器自动跳HTTPS。

备注:内容来源于stack exchange,提问作者lingar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 08:04:52