仅部分路径上的Node.js客户端证书身份验证

Juk*_*kka 6 ssl https x509 node.js

我有一个node.js基于Web的应用程序,需要https来自客户端的安全()连接.我想要的是在某些路径上需要客户端证书身份验证,而在其他路径上则不需要.

所以举个例子.如果用户访问https://www.example.com/main,则服务器不需要客户端证书身份验证(因此浏览器不会询问任何内容).但是,如果用户导航到https://www.example.com/secure,则需要客户端证书身份验证(因此浏览器将弹出一个对话框,用于选择要使用的证书).

我怎样才能实现这一目标.我能够强制客户端证书认证,如果我通过requestCert:truerejectUnauthorized:truehttps.createServer选择.这种方法的问题是每个路径都需要客户端证书.

小智 0

我不确定我是否完全理解你想要什么..但根据我的理解,如果你使用express,你可以通过一个简单的中间件来管理这个东西..在那个中间件中,你可以跟踪来自http的请求或通过此https

HTTPS 连接具有 req.connection.encrypted (包含有关 SSL 连接信息的对象)。HTTP 连接没有 req.connection.encrypted。

另外(来自文档):

在 HTTPS 支持下,使用 request.connection.verifyPeer() 和 request.connection.getPeerCertificate() 获取客户端的身份验证详细信息。

我希望这有帮助..