我正在尝试制作一个 HTTPS 代理服务器,它可以拦截我的网络浏览器中的 make 请求并将我重定向到其他地方。下面的代码,当修改为
http
而不是 https
时,效果很好。但是,下面的程序根本不接收 HTTPS 请求。有什么建议吗?
const https = require('https');
const httpProxy = require('http-proxy');
const url = require('url');
const fs = require('fs');
const sslOptions = {
cert: fs.readFileSync('cert.pem'),
key: fs.readFileSync('key.pem'),
};
const proxy = httpProxy.createProxyServer({});
const server = https.createServer(sslOptions, (req, res) => {
const parsedUrl = url.parse(req.url);
console.log('Original URL:', req.url);
console.log('Modified URL:', url.format(parsedUrl));
proxy.web(req, res, {
target: 'https://' + req.headers.host,
headers: req.headers,
});
});
proxy.on('error', (err, req, res) => {
console.error('Proxy Error:', err);
res.writeHead(500, {
'Content-Type': 'text/plain',
});
res.end('Something went wrong.');
});
server.listen(3000, () => {
console.log('HTTPS proxy server listening on port 3000');
});
提前致谢:)