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

React+Express部署GoDaddy VPS:后端仅HTTP可用HTTPS报错求助

问题分析与解决办法

错误原因

你用HTTPS请求https://example.com:8443/send-email,但后端Express服务仅监听HTTP协议的3001端口,8443端口既没有配置SSL证书,也没有对应支持HTTPS的服务,导致SSL握手时版本不匹配,触发curl: (35) error:0A00010B:SSL routines::wrong version number错误。


方案1:用cPanel反向代理(推荐,适合新手)

利用cPanel的反向代理功能,将HTTPS域名请求转发到本地HTTP后端,无需修改后端代码:

  1. 登录cPanel,进入SSL/TLS模块,确认你的域名已安装有效SSL证书(GoDaddy支持免费的Let's Encrypt证书)。
  2. 找到Advanced下的Reverse Proxy(部分版本在Apache Configuration内),添加代理规则:
    • 代理路径填/send-email
    • 目标URL填http://127.0.0.1:3001
  3. 保存配置后,前端直接请求https://example.com/send-email(无需加端口),Apache会自动将HTTPS请求转发到本地3001端口的HTTP服务,同时解决跨域问题。

方案2:给Express服务配置HTTPS

让后端直接支持HTTPS协议,适配8443端口:

  1. 从cPanel的SSL/TLS模块下载域名的SSL证书文件(通常是cert.pem和privkey.pem),上传到VPS的Express项目目录。
  2. 修改Express代码,引入HTTPS模块启动服务:
const https = require('https');
const fs = require('fs');
const express = require('express');
const app = express();

// 保留原有路由逻辑
app.post('/send-email', (req, res) => {
  // 你的业务代码
});

// 加载SSL证书
const sslOptions = {
  key: fs.readFileSync('./privkey.pem'),
  cert: fs.readFileSync('./cert.pem')
};

// 启动HTTPS服务监听8443端口
https.createServer(sslOptions, app).listen(8443, () => {
  console.log('HTTPS服务运行在8443端口');
});
  1. 重启Express服务后,用curl https://example.com:8443/send-email测试,确认请求正常。

注意事项

  • 若用方案2,需确保VPS防火墙(如firewalld/iptables)开放8443端口。
  • 前端避免直接请求HTTP端口(如3001),浏览器会因为混合内容(HTTPS页面加载HTTP资源)阻止请求,必须通过HTTPS方式访问后端接口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 01:07:13