【发布时间】:2018-08-29 23:39:09
【问题描述】:
我正在 Node.js 中构建一个 HTTP 代理,它尝试使用自签名证书拦截 HTTPS 连接。我正在使用裸http.Server,实例化我自己的tls.TLSSocket 以根据需要升级套接字,并且当客户端信任CA 时,该功能都可以正常工作。
如果客户端没有配置 CA,它显然会拒绝连接,抱怨链中有一个自签名证书。
应该是这样,但我想要一种方法来检测服务器端是否发生了这种情况,这样我就可以提示用户正确配置他们的客户端。
可以这样做吗?似乎 TLS RFC (https://www.rfc-editor.org/rfc/rfc5246#section-7.2.2) 有很多关于证书拒绝的错误警报消息,我希望能涵盖这一点,但即使使用NODE_DEBUG=tls,我也无法在 Node 中看到任何调试信息。
我真的很想订阅 TLS 错误警报事件,这样我就可以直接对其中的各种有趣案例做出反应。我该怎么做?
【问题讨论】:
标签: javascript node.js ssl https error-handling