Node.js 来自 Windows 的客户端证书...我如何判断证书是否正在发送?

Node.js client cert from Windows... how can I tell if the cert is being sent?

我有一个客户端证书安全的休息端点,当我使用 Linux-land 中的已知证书通过 curl 访问它时它可以工作......也就是说,如果我 console.log(req.connection.getPeerCertificate()),我看到了一堆东西。酷

...然而,当我的一个队友试图从 Windows 机器上访问同一个端点时,req.connection.getPeerCertificate() 是一个空对象,即使他们认为他们正在附加证书正确。

判断他们是否确实正确附加证书的最佳方法是什么?我应该如何调试它?

docs say:

If the peer does not provide a certificate, [getPeerCertificate] returns null or an empty object.

所以您已经知道 Windows 客户端没有发送有效证书,因为 getPeerCertificate() returns 一个空对象。检查 authorizationError 属性 以获取有关可能发生的任何客户端证书错误的其他信息。

通过找出客户端不发送证书的原因来对此进行调试。您是否在 server options 中设置了 requestCert: true?客户端配置是否正确?是否发送可以验证的证书?