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

升级NodeJS至20版本后本地HTTPS连接失败问题求助

解决Node.js 20 + Vite本地HTTPS访问拒绝连接问题

排查方向1:Vite的HTTPS配置兼容性

Node.js 20对TLS配置有更严格的要求,Vite升级后需明确指定证书路径,避免依赖自动注入:

  • 修改Vite配置文件(vite.config.js/vite.config.ts),添加完整HTTPS配置:
    import { defineConfig } from 'vite'
    import react from '@vitejs/plugin-react'
    import fs from 'fs'
    
    export default defineConfig({
      plugins: [react()],
      server: {
        https: {
          key: fs.readFileSync('./localhost-key.pem'),
          cert: fs.readFileSync('./localhost.pem'),
        },
        host: 'admin.localhost.com',
        port: 443
      }
    })
    
  • 若原有mkcert证书仅针对localhost,重新生成包含子域名的证书:
    mkcert admin.localhost.com portal.localhost.com localhost 127.0.0.1 ::1
    

排查方向2:Node.js 20的DNS解析变化

Node.js 20调整了DNS解析默认行为,可能导致子域名解析异常:

  • 在Vite配置中强制绑定IP并添加域名映射:
    server: {
      host: '127.0.0.1',
      port: 443,
      https: { /* 证书配置 */ },
      proxy: {
        'admin.localhost.com': {
          target: 'https://127.0.0.1:443',
          changeOrigin: true,
          secure: false
        }
      }
    }
    
  • 或启动时直接指定绑定IP:
    vite --host 127.0.0.1 --port 443 --https
    

排查方向3:端口占用或权限问题

Node.js 20对端口权限管控更严格:

  • 检查443端口是否被占用:Windows用netstat -ano | findstr :443,macOS/Linux用lsof -i :443,关闭占用进程后重试。
  • 若用非标准HTTPS端口(如3001),访问时需带端口号https://admin.localhost.com:3001,同时Vite配置中指定对应端口。
  • 非root用户绑定443端口需权限:macOS/Linux加sudo启动Vite,Windows用管理员终端运行。

排查方向4:浏览器缓存或证书信任问题

  • 清除浏览器缓存和SSL状态,用无痕模式访问测试。
  • 重新安装mkcert根证书,确保Node.js 20环境能识别:
    mkcert -install
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 20:56:00