所有,UNABLE_TO_VERIFY_LEAF_SIGNATURE同时使用HTTP代理的节点
我想创建一个简单的代理,其所有的请求转发verbatum到另一台服务器。为此,我使用“http-proxy”npm。我正在尝试从本地到云服务器。起初,当我设置http代理时,我看到一个错误“无法验证第一个证书”。在网上进行了一些调查后,我发现这可能与我拥有自签名证书的事实有关。由于它是自签名的,因此它不在证书存储区中,因此无法验证。但是,因为在开发过程中我不需要这个,所以我添加了“secure:false”来忽略证书验证。我知道这是不安全的生产,但我现在只是想解决这个问题。这个更新实际上解决了这个错误。
现在,我收到另一个错误“UNABLE_TO_VERIFY_LEAF_SIGNATURE”。
任何人都可以帮我弄清楚如何摆脱这个错误?我尝试加入: process.env ['NODE_TLS_REJECT_UNAUTHORIZED'] ='0'
但是,仍然显示错误。我看到由http-proxy发出的事件中的错误(请参阅下面的代码以了解此事件)。如果我伊特诺钻到 'proxyRes' 我可以在proxyRes看到这个错误 - >连接 - > authorizationError - > UNABLE_TO_VERIFY_LEAF_SIGNATURE
这里是我下面的代码:
'use strict'
require('dotenv').config({silent: true})
var util = require('util');
const loggerFactory = require('./utils/logger')
const express = require('express')
const defaultRouter = require('./routes/default')
var logger = loggerFactory.consoleLogger
const proxy = require('http-proxy');
module.exports = (config) => {
const app = express()
// app.use(loggerFactory.requestLogger())
app.set('json spaces', 2)
app.set('port', config.express.port)
app.use('', defaultRouter)
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'
var apiProxy = proxy.createProxyServer({});
var proxyUrl = process.env.HOMEINSPECTIONSERVER_URL;
app.use((req,res,next) => {
apiProxy.web(req, res,
{
target: proxyUrl,
secure: false,
}
);
apiProxy.on('error', function(e) {
logger.error("Error during proxy call!")
logger.error("This is the error : " + e)
next('route')
});
apiProxy.on('proxyReq', function(proxyReq, req, res, options) {
logger.info("---REQUEST---")
console.log("---REQUEST---")
// logger.info(util.inspect(proxyReq))
proxyReq.setHeader('X-Special-Proxy-Header', 'foobar');
});
apiProxy.on('proxyRes', function (proxyRes, req, res) {
// logger.info("---RESPONSE---")
// logger.info(util.inspect(proxyRes))
// logger.info("---RESPONSEEND---")
logger.info('RAW Response from the target',
JSON.stringify(proxyRes.headers, true, 2));
});
apiProxy.on('open', function (proxySocket) {
proxySocket.on('data', hybiParseAndLogMessage);
});
apiProxy.on('close', function (res, socket, head) {
console.log('Client disconnected');
});
apiProxy.on('start', function (req, res, target) {
// console.log('Started Request!');
});
})
app.use((req, res) => {
// logger.info('starting request...')
res.json(res.locals.standardResponse)
})
app.use((err, req, res, next) => {
var statusCode = 500
if (res.locals.standardResponse) {
res.locals.standardResponse.error = err
statusCode = err.statusCode || 600
logger.error(err)
res.status(statusCode).json(res.locals.standardResponse)
}
if (err.error !== undefined && err.error.httpStatus !== undefined) {
statusCode = err.error.httpStatus
} else {
statusCode = err.statusCode || 600
}
logger.error(err)
res.status(statusCode).json(res.body)
})
return app
}