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

无域名情况下将Express.js部署到Amazon EC2并实现HTTPS访问

无注册域名下EC2 Express应用HTTPS访问方案

方案1:使用自签名证书

这是最直接的无域名方案,适合后端服务调用场景(前端浏览器会触发安全警告,但后端服务可通过忽略证书验证或导入信任证书解决)。

操作步骤:

  1. 生成自签名证书
    在EC2实例上执行OpenSSL命令生成证书和密钥:

    openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
    

    执行时按提示填写信息,Common Name可填EC2的Public IPv4 DNS或IP地址。

  2. 配置Express启用HTTPS
    修改Express代码,替换默认的HTTP服务为HTTPS:

    const express = require('express');
    const https = require('https');
    const fs = require('fs');
    
    const app = express();
    
    // 加载证书文件
    const sslOptions = {
      key: fs.readFileSync('./key.pem'),
      cert: fs.readFileSync('./cert.pem')
    };
    
    // 示例路由
    app.get('/api', (req, res) => {
      res.json({ status: 'success', message: 'HTTPS access enabled' });
    });
    
    // 启动HTTPS服务监听443端口
    https.createServer(sslOptions, app).listen(443, () => {
      console.log('HTTPS server running on port 443');
    });
    

    注:监听443端口需root权限,或执行sudo setcap cap_net_bind_service=+ep /usr/bin/node给Node.js赋予端口绑定权限。

  3. 客户端适配

    • Node.js客户端调用时,可添加rejectUnauthorized: false跳过证书验证(仅限内部/测试场景),或把自签名证书导入客户端信任库。
    • 浏览器访问需用户手动信任证书。

方案2:使用AWS API Gateway作为HTTPS前端

AWS API Gateway提供默认HTTPS域名,可将EC2作为后端目标,无需自行注册域名。

操作步骤:

  1. 创建API Gateway
    登录AWS控制台进入API Gateway服务,选择创建HTTP API(轻量型)或REST API:

    • 添加对应资源与方法(如GET/POST),集成类型选择「HTTP」,填写EC2的Public IPv4 DNS和内部HTTP端口(如80)。
  2. 部署API
    将API部署到指定阶段(如prod),系统会生成默认HTTPS域名(格式类似https://xxxxxx.execute-api.eu-north-1.amazonaws.com/prod)。

  3. 配置EC2安全组
    允许API Gateway的IP段或所有IP访问EC2的HTTP端口(80)。

  4. 测试访问
    直接使用API Gateway生成的HTTPS域名调用接口,其他HTTPS网站可正常调用该域名,无证书或跨域问题。

方案3:使用AWS ACM私有CA签发证书

若需更正规的非自签名证书,可通过AWS ACM私有CA签发针对EC2 DNS或IP的证书,适合内部服务调用场景。

操作步骤:

  1. 创建私有CA
    在AWS ACM控制台创建私有根CA或从属CA,完成证书颁发机构的配置与激活。

  2. 签发目标证书
    在ACM中请求证书,填写EC2的Public IPv4 DNS或IP地址,选择已创建的私有CA完成签发。

  3. 配置EC2服务
    将签发的证书与密钥下载到EC2实例(注意权限管控),配置Express或Nginx使用该证书。

  4. 客户端信任配置
    将私有CA的根证书导入客户端信任存储,避免调用时出现证书验证错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:25:31