SSL 警报编号 46。警报证书未知。如何忽略此异常?

Gle*_*min 5 ssl node.js

我有一些开源项目,它具有基于 NodeJS 的 WebUI。当我想访问它时,我可以在 WebUI 中观察此日志:

错误:httpsServer 异常:在客户端错误:错误:140446233978688:错误:14094416:SSL 例程:ssl3_read_bytes:sslv3 警报证书未知:s3_pkt.c:1487:SSL 警报编号 46 八月 19 11:49:4834:节点 [140446233978686]错误:140940E5:SSL 例程:ssl3_read_bytes:ssl 握手失败:s3_pkt.c:1210:

此问题仅在使用 Google Chrome 时观察到(使用 Firefox 或 Safari 未在日志中生成此异常)。所有浏览器都将自签名根证书标记为无效。我的问题 - 如何让 WebUI 忽略此异常?这个 WebUI 只能从本地网络访问,我不想为了钱而签署证书。谢谢。

Ste*_*ich 13

您不能在应用程序中忽略此异常,因为问题不是由应用程序本身引起的。相反,该警报是在 TLS 握手期间由浏览器生成的:浏览器以这种方式告诉服务器它不会接受服务器发送的证书。发送此警报后,浏览器将关闭连接。即使您以某种方式忽略了 node.js 代码中的此异常,您也将无法与浏览器通信 - 因为它是拒绝通信的浏览器。

解决此问题的唯一方法是使用浏览器信任的证书。如果是自签名证书,这意味着您必须将证书作为受信任的证书导入浏览器(在这种情况下,证书中的主题备用名称必须与 URL 匹配),或者您在收到的警告对话框中添加明确的例外访问网站。