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

React+Spring Boot应用证书错误求助:ERR_CERT_COMMON_NAME_INVALID

解决Spring Boot API证书错误问题

一、修复ERR_CERT_COMMON_NAME_INVALID错误

这个错误的核心是Spring Boot使用的证书,其通用名称(CN)或主题备用名称(SAN)和API的访问地址不匹配。

  • 先确认你调用API时的访问地址:是https://api.mypage.com、https://www.mypage.com/api还是服务器IP?证书必须包含这个地址。
  • 检查现有证书的CN和SAN:
    1. 在Windows Server上打开certlm.msc(本地计算机证书管理器)
    2. 找到给www.mypage.com用的证书,右键→所有任务→查看
    3. 切换到「详细信息」标签,查看「主题」(找CN字段)和「主题备用名称」
  • 重新生成证书(若需要):
    如果证书里没包含API的访问地址,得重新申请/生成证书,确保SAN字段把API的域名(比如api.mypage.com)或者服务器IP(如果用IP访问)加进去。
  • 替换Spring Boot的Keystore:
    别用resources目录里的旧证书,把IIS上的有效证书导出成包含私钥的PKCS12格式,替换掉配置里的KeyStore.p12,同时保证key-alias和导出时设置的一致。

二、修复NET::ERR_CERT_AUTHORITY_INVALID错误

这个是浏览器不信任证书的颁发机构,分两种场景处理:

场景1:使用自签名证书

  • 把证书导入Windows Server的「受信任的根证书颁发机构」:
    1. 打开certlm.msc,展开「受信任的根证书颁发机构」→「证书」
    2. 右键→所有任务→导入,选择你的证书文件完成导入
  • 客户端浏览器也要导入(内部使用场景):
    Chrome里走「设置→隐私和安全→安全→管理证书→受信任的根证书颁发机构→导入」即可。

场景2:使用CA颁发的证书

  • 检查证书链是否完整:
    部分CA颁发的证书需要搭配中间证书,得把根证书、中间证书和服务器证书一起导入到PKCS12格式的Keystore里。
  • 验证Keystore的证书链:
    用命令 keytool -list -v -keystore KeyStore.p12 -storetype PKCS12 查看,确认有完整的证书层级。

三、Spring Boot配置额外检查

  • 确认server.port是HTTPS端口(默认443,你用8080也可以,但访问得加端口)。如果想和IIS共用443端口,建议做反向代理——让IIS当前端,把请求转发到Spring Boot的8080端口,这样就能共用同一个证书,从根源避免证书不匹配。
  • 核对key-alias是否正确:用 keytool -list -keystore KeyStore.p12 -storetype PKCS12 能查看Keystore里的证书别名。
  • 生产环境别把Keystore放resources目录:建议放在服务器的非代码目录,配置里用绝对路径,比如server.ssl.key-store=C:\\cert\\KeyStore.p12,避免打包时出现路径问题。

四、推荐方案:IIS反向代理

不想单独给Spring Boot配置证书的话,用IIS做反向代理是最优解,API和前端网页共用同一个证书,彻底解决证书问题:

  1. 在IIS里安装「URL重写」和「应用程序请求路由(ARR)」模块
  2. 要么新建网站,要么在现有www.mypage.com网站下添加API的路由规则
  3. 设置重写规则,把https://www.mypage.com/api/*的请求转发到http://localhost:8080/*
  4. 之后前端调用API用同域名路径,证书和IIS的一致,不会再出现证书错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:45:29