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

访问localhost:3000遇自签名证书链认证失败,Azure配置正确仍未解决

解决自签名证书链导致的认证失败问题

针对Node.js应用的代码层面处理

如果localhost:3000对应的是Node.js服务(比如Express),或应用内有对外请求逻辑,需在请求配置中跳过证书验证:

  • 使用axios时,添加证书验证禁用配置:
    const axios = require('axios');
    const https = require('https');
    
    axios.get('目标请求地址', {
      httpsAgent: new https.Agent({
        rejectUnauthorized: false
      })
    });
    
  • 使用原生https模块时,直接设置参数:
    const https = require('https');
    https.get('目标请求地址', { rejectUnauthorized: false }, (res) => {
      // 响应处理逻辑
    });
    
  • Node.js环境下使用fetch,需配置自定义Agent:
    const https = require('https');
    fetch('目标请求地址', {
      agent: new https.Agent({ rejectUnauthorized: false })
    });
    

全局环境变量设置

通过环境变量让Node.js全局跳过证书验证,设置后重启localhost服务生效:

  • Windows命令提示符:
    set NODE_TLS_REJECT_UNAUTHORIZED=0
    
  • Windows PowerShell:
    $env:NODE_TLS_REJECT_UNAUTHORIZED=0
    
  • Linux/macOS终端:
    export NODE_TLS_REJECT_UNAUTHORIZED=0
    

导入自签名证书到信任链(安全替代方案)

若不想完全禁用验证,可将自签名证书加入信任体系:

  • 代码中指定信任证书:
    const https = require('https');
    const fs = require('fs');
    https.get('目标请求地址', {
      ca: fs.readFileSync('./你的自签名证书文件.pem')
    }, (res) => {
      // 响应处理逻辑
    });
    
  • 将证书导入系统信任库(Windows用证书管理器,macOS用钥匙串访问),让Node.js自动信任该证书。

核对Azure相关配置

确认Azure服务返回的证书包含完整链(根证书+中间证书),同时检查本地应用请求的Azure端点是否正确,避免误请求到其他使用自签名证书的服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:45:35