【问题标题】:How to make insecure HTTPS call in Node.js如何在 Node.js 中进行不安全的 HTTPS 调用
【发布时间】:2012-08-10 04:43:50
【问题描述】:

在 Curl 中,我可以使用 -k 来执行不安全的 SSL 连接和传输。但是,在 node.js 中,我检查了 HTTPS 文档。我找不到任何可以做到的选项。

我需要这个的原因是我需要调用远程服务器。我有证书和密码。它可以连接。但是,由于证书的 url 与主机不同,因此安全检查失败。好吧,由于某些操作原因,证书必须是那样的,我无法更改它。我尝试将 http.options.hostname 与证书中的相同。但是,它也失败了。

那么,我还可以使用哪些其他选项?

【问题讨论】:

  • HTTPS 的重点是不进行不安全的调用,所以请不要在标题中询问规避此问题的方法。
  • 天啊。你不觉得我不知道吗?但我需要在我们的内部网络中建立这种连接。如果没有理由,我不会在这里发布。我认为这是一个可以提供帮助的地方.. 对吗?
  • @TheZ 你知道你可以编辑标题,对吧?

标签: node.js curl https insecure-connection


【解决方案1】:

通过不安全的 SSL 证书解决 https 的最佳方法是使用 node-curl 模块并将 SSL_VERIFYPEER 设置为 false

var http = require('http');
var curl = require('node-curl');

http.createServer(function(request,response){

    var url = 'https://url';
    url += request.url;

    console.log(url);


    curl(url,
        { 
            SSL_VERIFYPEER : 0
        },
        function(err){
            response.end(this.body);
        })

}).listen(8000);

【讨论】:

    【解决方案2】:

    https.request的选项中尝试rejectUnauthorized

    【讨论】:

    • 检查文档中的 rejectUnauthorized 选项。它对我有用。
    【解决方案3】:

    我无法让node-curl 工作,但将NODE_TLS_REJECT_UNAUTHORIZED 环境变量设置为0 有帮助。我使用request 库发出HTTPS 请求。

    https://github.com/visionmedia/superagent/issues/205#issuecomment-21669569

    【讨论】:

      猜你喜欢
      • 2014-10-20
      • 1970-01-01
      • 2011-07-05
      • 2021-04-24
      • 1970-01-01
      • 1970-01-01
      • 2018-07-08
      相关资源
      最近更新 更多