Firefox 断开自签名证书的 websockets 连接

Posted

技术标签:

【中文标题】Firefox 断开自签名证书的 websockets 连接【英文标题】:Firefox disconnects websockets connection for a self signed certificate 【发布时间】:2014-12-31 20:20:11 【问题描述】:

我正在尝试与使用自签名证书的后端服务器建立 websocket 连接。在 Firefox 中,我为自签名证书添加了一个例外。

但是我的 websocket 连接 wss:// 连接失败。我收到一个包含代码 1006 的关闭事件,这是一个捕获所有代码。

Chrome 和 IE 网络套接字工作。由于我使用的是 Windows,因此我使用 certmgr.exe 作为受信任的证书安装了证书。

我现在的猜测是,firefox websockets 不适用于证书异常,需要被信任。

这种情况是否适用于其他人?

【问题讨论】:

【参考方案1】:

只有当站点的证书是可信的时,Firefox 才能使用安全的 websockets (wss://)。

使用自签名证书,我可以通过向证书添加例外来浏览该站点。该异常不适用于 websocket,并且在 ssl 握手期间断开了连接。

相反,我创建了自己的根 CA 证书,然后为网络服务器创建了另一个签名证书。在选项 > 查看证书 > 权限中,我导入了根证书。现在 firefox 可以毫无问题地通过安全的 websocket 进行连接。

Firefox 不允许将自签名证书作为权威导入。 Windows 证书管理器允许将自签名证书导入“受信任的根证书颁发机构”列表。

【讨论】:

【参考方案2】:

以防万一它可以帮助任何人,在撰写本文时(v61.0.1),OP 的答案中提到的内容并不正确。

我使用https 导航到我的 WS 服务器地址,因为任何 WS 服务器实际上都是 HTTP 服务器,然后出现通常的无效证书屏幕并允许我添加异常。之后,任何wss 连接到相同的主机和端口都是成功的。

【讨论】:

以上是关于Firefox 断开自签名证书的 websockets 连接的主要内容,如果未能解决你的问题,请参考以下文章

wget、自签名证书和自定义 HTTPS 服务器

创建用于测试 localhost 的自签名证书并使其被浏览器接受

keytool和openssl的区别

自签名证书可以用吗?

什么是自签名SSL证书?

MAC申请自签名的ssl证书