NodeJS请求的自签名证书错误

时间:2016-09-21 19:03:19

标签: javascript node.js http ssl request

我在代理服务器中使用NodeJS的request库。

我的工作正常,但我想更改代理,以便将入站HTTP请求转发到 HTTPS 地址,而不是将HTTP请求转发到HTTP地址。

但是当我运行并尝试使用代理时,我收到以下错误:

stream.js:74
      throw er; // Unhandled stream error in pipe.
      ^

Error: self signed certificate in certificate chain

我按照在线说明创建了密钥,crt和伪证书授权(链接到代码中),但上面的错误表明它仍然无法正常工作。

我做了什么明显的错误吗?

我的代码如下所示:

var certFile = path.resolve(__dirname, 'server.CA-signed.crt');
var keyFile = path.resolve(__dirname, 'server.CA.key');
var ca = path.resolve(__dirname, 'demoCA/newcerts/1234567890.pem');

app.use(function(req, res) {
    var rewriter = request({
        url: rewrite(req.url),
        qs: req.query,
        cert: fs.readFileSync(certFile),
        key: fs.readFileSync(keyFile),
        passphrase: 'foobar',
        agentOptions: {
            ca: ca
        }
    });
    req.pipe(rewriter);
    rewriter.pipe(res);
});

function rewrite(url) {
    console.log('url: ', url)
    var rewritten = 'https://example.com:9000'.concat(trimQuery(url));
    console.log('rewritten: ', rewritten);
    return rewritten;
}

0 个答案:

没有答案