Firefox无法连接安全WebSocket:NS_ERROR_NET_RESET等问题求助
问题分析与解决办法
核心问题定位
SSL_ERROR_RX_RECORD_TOO_LONG是关键报错:这说明你的WebSocket服务在10000端口未启用TLS加密,当Firefox以HTTPS(TLS加密)方式连接该端口时,服务器返回非TLS格式的数据,导致解析失败。- Chrome能正常工作,是因为它对本地开发环境的自签名证书、未加密安全连接的容错机制更宽松,而Firefox的安全校验策略更严格。
具体解决步骤
1. 给WebSocket服务配置TLS加密
你的WebSocket服务必须在10000端口启用TLS,使用和Web服务器HTTPS一致的自签名证书(或Firefox已信任的证书)。如果服务仅支持未加密的ws连接,wss请求必然失败。
2. 让Firefox信任自签名证书
- 通过HTTPS访问Web服务器(如
https://<domain>),在安全警告页选择「高级」→「接受风险并继续」,手动信任该自签名证书。 - 确保WebSocket服务使用的证书与Web服务器完全相同,这样Firefox会自动信任该证书对应的
wss连接。
3. 临时绕过端口安全限制(仅开发环境用)
Firefox默认对部分非标准端口的安全连接有额外限制,但10000端口不在默认限制列表中。若仍有问题,可临时修改配置:
- 在地址栏输入
about:config,搜索network.security.ports.banned.override,将10000添加到配置值中(若配置不存在,右键新建字符串类型并填入端口号)。
4. 验证WebSocket服务的TLS配置
用命令行工具测试端口是否启用TLS:
openssl s_client -connect <domain>:10000
若返回TLS握手相关信息,说明配置正确;若返回乱码或非TLS响应,证明服务未开启TLS加密。
内容的提问来源于stack exchange,提问作者k0pernikus




