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

Firebase部署Angular应用调用EC2接口报混合内容错误如何解决?

解决方案

你完全可以在AWS Windows EC2实例上安装SSL证书为Node.js API启用HTTPS,这是解决当前HTTPS站点调用HTTP接口触发的混合内容拦截问题的标准方案,具体操作步骤如下:

  • 第一步:为EC2公网IP绑定自定义域名。SSL证书只能绑定域名使用,无法直接绑定公网IP,你需要先将自己的域名添加一条A记录,解析指向EC2实例的公网IP。
  • 第二步:申请对应域名的SSL证书。你可以选择免费的Let's Encrypt域名证书,也可以根据需求选购付费的DV/OV/EV级证书,申请后会得到证书文件和对应的私钥文件。
  • 第三步:配置HTTPS服务,有两种常用方案可选:
    • 方案1:直接在Node.js服务中集成SSL。修改你的Node.js服务代码,将原本的HTTP服务替换为HTTPS服务,加载申请到的证书和私钥,监听443端口,示例代码如下:
      const https = require('https');
      const fs = require('fs');
      const express = require('express');
      const app = express();
      
      // 加载SSL证书和私钥
      const options = {
        key: fs.readFileSync('你的私钥文件路径.key'),
        cert: fs.readFileSync('你的证书文件路径.crt')
      };
      
      // 启动HTTPS服务
      https.createServer(options, app).listen(443, () => {
        console.log('HTTPS API服务已启动,监听443端口');
      });
      
    • 方案2:通过反向代理层配置SSL。你可以在Windows EC2实例上安装IIS或Nginx作为反向代理,将SSL证书配置在反向代理服务上,把443端口接收到的HTTPS请求转发到本地Node.js服务监听的端口,这种方案不需要修改Node.js代码,也更方便后续维护证书、配置访问规则。
  • 第四步:调整EC2安全组规则。在AWS控制台的EC2安全组配置中,放开443端口的入站访问权限,允许公网HTTPS请求进入。
  • 第五步:修改前端API调用地址。把Angular项目中所有调用API的地址从http://EC2公网IP/API替换为https://你的域名/API,重新构建项目后部署到Firebase即可正常访问。

如果仅用于临时本地测试,你也可以手动调整浏览器安全设置禁用混合内容拦截,但该方案仅适用于测试场景,生产环境必须为API配置HTTPS。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:39:03