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

使用spring-boot-starter-websocket,本地ws正常部署后wss连接失败求排查

部署后WSS协议无法连接WebSocket的可能遗漏配置

我使用spring-boot-starter-websocket实现WebSocket连接,本地环境通过ws协议可正常连接,但部署应用后无法通过wss协议连接,服务端配置截图如下:
服务端配置截图
客户端代码截图如下:
客户端代码截图

以下是可能遗漏的配置项:

  • SSL证书配置:部署环境需配置有效SSL证书(生产环境建议使用权威机构颁发的证书,测试环境可使用自签证书)。在Spring Boot中,可通过配置文件完成设置:

    server.ssl.key-store=classpath:keystore.p12
    server.ssl.key-store-password=your-password
    server.ssl.key-store-type=PKCS12
    server.ssl.key-alias=your-alias
    

    若通过反向代理(如Nginx)处理SSL,需确保代理能正确转发WSS请求至后端WS端口。

  • 反向代理WSS转发规则:以Nginx为例,需添加对应转发配置,确保WSS请求被正确代理:

    location /ws {
        proxy_pass http://localhost:8080/ws;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
    

    同时Nginx需配置SSL证书并监听443端口,保证wss://域名/ws能转发到后端的ws://localhost:8080/ws。

  • 路径匹配校验:确认客户端WSS连接路径与服务端WebSocket端点路径完全一致,若服务端配置了server.servlet.context-path,客户端连接路径需包含该上下文路径。

  • 端口与防火墙配置:检查部署环境的防火墙或云安全组是否开放了443端口(WSS默认端口);若后端直接处理SSL,还需开放配置的SSL端口(如8443)。

  • WebSocket配置适配:Spring Boot配置SSL后会自动支持WSS,无需修改WebSocket注册代码,但要确保客户端连接地址为wss://域名:端口/端点路径,避免硬编码ws协议地址。

  • 证书信任处理:若使用自签证书,浏览器等客户端可能拒绝连接,需在客户端导入证书,测试环境可临时忽略证书验证(生产环境禁止)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:07:18