gpt4 book ai didi

node.js - 使用自签名证书的 Node JS SSL 固定。

转载 作者:太空宇宙 更新时间:2023-11-03 14:29:57 24 4
gpt4 key购买 nike

我希望我的 node.js 服务器只允许包含 SSL 证书的 http 请求,以避免“中间人”

问题是使用自签名证书根本不起作用。

这是我的简单 node.js 服务器:

var fs = require('fs'); 
var https = require('https');
var util = require('util');

var options = {
key: fs.readFileSync('keys/myKey.key'),
cert: fs.readFileSync('keys/cert.crt'),
requestCert: true,
rejectUnauthorized: false,
agent: false,
};


https.createServer(options, function (req, res) {
console.log(new Date()+' '+
req.connection.remoteAddress+' '+
req.method+' '+req.url + 'auth = ' + req.client.authorized);
res.writeHead(200);
res.end("hello world\n");
}).listen(8443);

Client.authorized 将始终为 no,因为它是自签名证书。

知道我怎样才能设法允许带证书的请求并将没有证书的请求放到另一个地方吗?种类:

https.createServer(options, function (req, res) { 
if (req.hasCertificateThatMatchTheOneOnMyServer) {
// do something
}
else {
// do something else
}
}

非常感谢。

最佳答案

将环境变量 NODE_EXTRA_CA_CERTS 设置为指向包含服务器和客户端自签名证书的文件系统位置。

此外,请考虑阅读此答案中的解释,以确保您的自签名证书与启用的 NodeJS 密码套件同步:https://stackoverflow.com/a/53325115/1235935

关于node.js - 使用自签名证书的 Node JS SSL 固定。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53543745/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com