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

cPanel/Linux下Go服务+React前端HTTPS端点SSL协议错误排查

问题分析与解决方案

你的核心问题出在.htaccess的规则顺序和逻辑错误,同时缺少API请求到Go后端的正确转发配置,导致HTTPS环境下请求无法正确路由,引发SSL协议相关错误。

一、修正.htaccess配置

当前配置先处理了React SPA的路由 fallback,之后才尝试HTTPS跳转,且跳转目标是HTTP协议的8080端口,这会导致混合内容错误或SSL握手失败。以下是修正后的配置:

RewriteEngine On
RewriteBase /

# 1. 强制所有HTTP请求跳转至HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]

# 2. 转发API相关请求到Go后端的8080端口
RewriteRule ^api/(.*)$ http://localhost:8080/api/$1 [P,L]
RewriteRule ^login$ http://localhost:8080/login [P,L]
RewriteRule ^logout$ http://localhost:8080/logout [P,L]

# 3. React SPA路由 fallback:非静态资源请求跳转至index.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /index.html [L]

配置说明:

  • 先强制所有HTTP请求转为HTTPS,确保全站使用加密协议
  • 把Go服务的路由(/api/*、/login、/logout)通过反向代理(P标记)转发到本地8080端口的Go后端,Apache会处理HTTPS与后端HTTP的协议转换
  • 最后处理React SPA的路由,确保单页应用的前端路由正常工作

二、其他必要检查项

  1. React请求地址修正
    确保baseUrl使用HTTPS协议,比如:

    const baseUrl = "https://你的域名/api/attendance";
    

    禁止使用HTTP协议或带端口的地址,避免混合内容错误。

  2. Go后端部署验证

    • 确保Go服务监听localhost:8080(而非公网IP),避免直接暴露端口
    • 如果Go后端未配置SSL证书,无需额外处理,因为Apache已经通过反向代理完成了HTTPS加密,后端与Apache之间走本地HTTP通信即可
  3. cPanel模块检查
    确认主机商在cPanel中启用了mod_proxy和mod_proxy_http模块(通常默认开启,若未开启需联系主机商)

  4. 浏览器错误排查
    打开浏览器控制台查看具体错误:

    • 若显示Mixed Content:说明仍有HTTP请求存在,检查baseUrl或其他资源地址
    • 若显示SSL Protocol Error:可能是Apache的SSL证书配置问题,或Go后端错误监听了HTTPS端口但证书不匹配

内容的提问来源于stack exchange,提问作者Edwin Fernando Pirajan Arevalo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:41:46