Node.js SSL身份验证
我设置了一个HTTPS node.js服务器,但在理解如何正确使用它时遇到了问题Node.js SSL身份验证,node.js,authentication,ssl,Node.js,Authentication,Ssl,我设置了一个HTTPS node.js服务器,但在理解如何正确使用它时遇到了问题 app.get('/test', function(req, res){ console.log('got in'); if(req.client.authorized){ res.send(200, 'certified'); }else{ res.send(200, 'idk who you are'); } }); require('https
app.get('/test', function(req, res){
console.log('got in');
if(req.client.authorized){
res.send(200, 'certified');
}else{
res.send(200, 'idk who you are');
}
});
require('https').createServer({
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem'),
requestCert: true,
rejectUnauthorized: false
}, app).listen(8080);
要在我的服务器上获得“授权”,客户端必须做什么
我可以浏览到
https://localhost:8080/test
它告诉我我的证书不可信(没关系,SSL现在是自签名的)。无论如何我都会继续,但我总是转到“idk who you is”,这意味着SSL身份验证失败
我很确定我在这里错过了一步
另外,如果这很重要,我正在设置SSL以用于加密。由于客户端提供的证书未经可信证书颁发机构签名,
authorized
属性为false。如果asrejectUnauthorized
为false,则不会拒绝连接,而是将其标记为un-authorized
看这里-
req.client.authorized是什么?也许它是未定义的,这就是为什么你总是得到“idk你是谁”。它会记录为false