node.js:没有服务器验证的HTTPS客户端证书?

时间:2017-03-24 21:21:15

标签: node.js https client-certificates

我在node.js中有一个https服务器和客户端。

对于“普通”HTTPS,主机允许任何客户端,客户端对主机进行身份验证。

但在我的情况下,我想做相反的事情: 我希望主机验证客户端,但客户端连接到任何主机而不验证它。即:主机没有获得密钥/ crt(但确实信任CA),而客户端确实获得密钥/ crt(并且还信任CA)。

https双方进行身份验证的标准方式是: 服务器选项:

key: fs.readFileSync('server-key.pem'), 
cert: fs.readFileSync('server-crt.pem'), 
ca: fs.readFileSync('ca-crt.pem'), 
requestCert: true, 
rejectUnauthorized: true

客户选项:

key: fs.readFileSync('client-key.pem'), 
cert: fs.readFileSync('client-crt.pem'), 
ca: fs.readFileSync('ca-crt.pem') }; 

我从服务器上删除了密钥和crt,但是如何告诉客户端不要求服务器/主机证书?我似乎无法想出那部分内容?文档声称客户端rejectUnauthorized必须设置为true才能使客户端验证服务器,因此我将其设置为false。但TLS握手似乎失败了。

0 个答案:

没有答案