【问题标题】:HTTP/S requests not getting through suddenly using axios - Works fine on browser使用 axios 突然无法通过 HTTP/S 请求 - 在浏览器上运行良好
【发布时间】:2021-02-10 09:47:57
【问题描述】:

几个小时以来我一直面临一个奇怪的问题。突然间,所有 https/http 请求都没有从 axios 获得通过。但它在浏览器上运行良好。比如下面的sn-p:

axios({
   url: "https://subdomain.mydomain.com/path/1/1/3",
   method: "post",
   data: {
      grade: "4"
   }
}).catch(err => console.log(err))

这会抛出UNABLE_TO_VERIFY_LEAF_SIGNATURE。它开始突然发生。同样对于一个简单的 GET 请求。如果我加载它,它在浏览器上运行良好。例如,考虑一个示例 GET 请求 https://qa-wms.reverieinc.com/version。如果你在浏览器中点击它,一切看起来都很好,SSL 证书和一切。

但是如果我尝试使用 axios:

axios({
  url: "https://qa-wms.reverieinc.com/version",
  method: "get"
}).catch(err => console.log(err));

抛出一个错误说UNABLE_TO_VERIFY_LEAF_SIGNATURE

我已经为此苦苦挣扎了一段时间。这里可能是什么问题?几个小时前它绝对有效。

【问题讨论】:

    标签: javascript node.js ubuntu https axios


    【解决方案1】:

    您可以将 axios 配置为使用自定义代理并将该代理的 rejectUnauthorized 设置为 false:

    // At request level
    const agent = new https.Agent({  
      rejectUnauthorized: false
    });
    axios.get('https://qa-wms.reverieinc.com/version', { httpsAgent: agent });
    

    第二种方法:

    另一种安全方式是您必须在服务器中包含中间证书。

    【讨论】:

    • 请在有关禁用 TLS 功能的建议中附上警告。这会使连接对 MITM 攻击开放,因为不会针对 CA 验证证书。不要在生产系统中盲目使用它。
    • 是的,正确的。这仅推荐用于开发。推荐第二种方法
    猜你喜欢
    • 2012-12-15
    • 1970-01-01
    • 2016-05-09
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    相关资源
    最近更新 更多