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

Spring Boot+原生JS配置WebSocket遇ERR_CERT_AUTHORITY_INVALID错误求助

问题解决指南

核心原因

错误net::ERR_CERT_AUTHORITY_INVALID本质是浏览器不认可当前使用的SSL证书(自签名证书默认不在浏览器信任列表内),另外你的后端配置了SockJS但前端用原生WebSocket连接,也可能导致协议兼容问题。

具体解决方案

1. 手动信任自签名证书

浏览器会拦截未被信任的SSL证书,先通过HTTPS访问一次服务地址完成信任:

  • 打开浏览器访问 https://localhost:8443,此时会提示“不安全”,选择“高级”→“继续前往localhost”(不同浏览器操作略有差异),将该证书添加到浏览器信任列表。
  • 完成后再刷新你的Group Call页面,WSS连接即可正常建立。

2. 修正SockJS与前端连接的匹配问题

你的后端WebSocket配置启用了SockJS(withSockJS()),但前端用原生WebSocket对象连接,这会导致协议不兼容。请改用SockJS客户端库连接:

  • 先在前端页面引入SockJS脚本:
    <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
    
  • 替换原WebSocket初始化代码:
    var socket = new SockJS('https://localhost:8443/gg');
    // 后续业务逻辑保持不变(如监听open/close/message事件)
    

3. 正确切换到WS(非加密)协议

若想使用未加密的WS协议,需确保后端关闭SSL配置:

  • 修改application.properties:
    # 注释或删除SSL相关配置
    # server.ssl.key-store=classpath:keystore.jks
    # server.ssl.key-store-password=123
    # server.ssl.key-password=123
    # 改用非SSL端口
    server.port=8080
    
  • 前端连接代码改为:
    var ws = new WebSocket('ws://localhost:8080/gg');
    

4. 生成符合规范的自签名证书

如果需要长期使用自签名证书,可重新生成包含正确信息的证书(确保CN与访问域名/IP一致):

  • 使用keytool命令生成:
    keytool -genkeypair -alias tomcat -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore keystore.p12 -validity 3650 -ext SAN=DNS:localhost,IP:127.0.0.1
    
  • 修改application.properties对应配置为PKCS12格式:
    server.ssl.key-store=classpath:keystore.p12
    server.ssl.key-store-password=你的密码
    server.ssl.key-store-type=PKCS12
    server.ssl.key-alias=tomcat
    
  • 导出证书并导入浏览器信任存储,彻底解决证书信任问题。

内容的提问来源于stack exchange,提问作者Валерий Альбертович

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:05:09