如何在Node.js中进行不安全的HTTPS调用

时间:2012-08-13 22:06:01

标签: node.js curl https insecure-connection

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

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

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

3 个答案:

答案 0 :(得分:1)

rejectUnauthorized

的选项中尝试https.request

答案 1 :(得分:0)

解决https而非不安全SSL证书的最佳方法是使用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 :(得分:0)

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

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