You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

突发WSS连接故障求助:Ubuntu环境下SSL WebSocket无法建立连接

WebSocket(WSS)连接故障排查思路

背景信息

  • 后端:Ubuntu虚拟机 + Apache + Python 3.10 + websockets库,配置Let's Encrypt SSL证书
  • 前端:另一台Ubuntu虚拟机 + Apache + WebGL应用,使用独立的Let's Encrypt SSL证书
  • 现象:WS协议可正常建立连接,WSS连接失败,Firefox提示firefox can't establish a connection to the server wss://domain:port
  • 已确认项:端口已开放(云控制台、ufw、nmap验证),代码回滚至历史可用版本,已重启相关主机

具体排查步骤

1. 验证SSL证书的域名匹配性

  • 检查后端WebSocket服务器的cert.pem对应域名,是否与前端JS中wss://domain:port的domain完全一致(含子域名,Let's Encrypt证书严格匹配域名)
  • 执行命令查看证书域名信息:openssl x509 -in ./cert.pem -text -noout,确认Subject Alternative Name字段包含目标域名

2. 检查SSL证书与私钥的有效性、匹配性

  • 验证证书与私钥是否匹配:
    openssl x509 -noout -modulus -in cert.pem | openssl md5
    openssl rsa -noout -modulus -in privkey.pem | openssl md5
    
    两个命令的输出必须完全一致,否则说明证书与私钥不匹配
  • 检查证书是否过期:openssl x509 -in cert.pem -enddate -noout,确认过期时间晚于当前日期

3. 排查WebSocket服务器的SSL配置兼容性

  • 尝试调整Python代码中的SSL协议版本,确保兼容主流浏览器:
    ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
    ssl_context.min_version = ssl.TLSVersion.TLS_1_2
    ssl_context.max_version = ssl.TLSVersion.TLS_1_3
    ssl_context.load_cert_chain(certfile="./cert.pem", keyfile="./privkey.pem")
    
  • 检查websockets库版本,执行pip show websockets,若版本过旧则升级:pip install --upgrade websockets

4. 测试WSS底层连通性与SSL握手

  • 使用wscat直接测试WSS连接(需先安装:npm install -g wscat):
    wscat -c wss://domain:port
    
    查看输出的具体错误信息(如证书验证失败、握手超时等)
  • 使用openssl测试SSL握手:
    openssl s_client -connect domain:port -servername domain
    
    查看输出中的verify return字段,verify return:1表示验证通过,其他值则说明证书验证存在问题

5. 清理浏览器SSL缓存并查看详细日志

  • 在Firefox中清除SSL缓存:打开about:preferences#privacy,进入“证书”->“查看证书”->“服务器”,删除对应域名的缓存证书
  • 开启Firefox调试日志:打开about:config,设置network.websocket.debug和security.ssl.debug为true,重新尝试连接后查看控制台的详细错误日志

6. 检查端口占用与Apache冲突

  • 确认WebSocket服务器端口未被Apache占用:netstat -tulpn | grep :port,确保只有Python的websockets进程在监听该端口
  • 若前端Apache配置了反向代理到WebSocket服务器,检查是否启用mod_proxy_wstunnel模块,且代理配置正确支持WSS协议

内容的提问来源于stack exchange,提问作者Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 15:27:38