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

如何通过ELB与Nginx处理子域名及自定义域名的SSL请求

解决方案

针对自定义域名的SSL安全与请求转发问题,提供以下3种可行方案:

方案1:基于AWS ALB + ACM多域名证书(生产环境推荐)

  • 操作步骤:
    1. 要求商户将自定义域名的CNAME记录指向你的ALB域名,而非直接用A记录绑定EC2 IP
    2. 在AWS ACM中申请多域名SSL证书,同时包含你的泛域名*.salesklik.com以及所有商户的自定义域名;若商户已有自有证书,也可通过ACM的证书导入功能统一管理
    3. 配置ALB的HTTPS监听器,绑定该多域名证书,将HTTPS请求转发至EC2的HTTP端口(ALB已完成SSL终止,EC2无需再处理加密)
    4. 确保EC2上的Next.js应用监听对应端口,ALB会自动转发原始Host头,Next.js默认可直接读取
  • 核心优势:统一管理所有域名的SSL证书,商户仅需修改DNS记录,无需自行维护证书;ALB自带负载均衡能力,后续扩容EC2实例更便捷
  • 注意事项:若商户无法使用CNAME记录(必须用A记录),可引导其使用Route 53的别名记录绑定ALB,或搭配AWS Global Accelerator实现静态IP访问(成本略高)

方案2:EC2部署Nginx作为反向代理处理SSL

  • 操作步骤:
    1. 在EC2实例上安装Nginx,配置反向代理指向Next.js应用(假设Next.js监听3000端口)
    2. 使用Let's Encrypt的certbot工具,为每个自定义域名自动申请并续期免费SSL证书
    3. Nginx配置示例:
      # 处理自定义域名HTTPS请求
      server {
          listen 443 ssl;
          server_name store1.com;
      
          ssl_certificate /etc/letsencrypt/live/store1.com/fullchain.pem;
          ssl_certificate_key /etc/letsencrypt/live/store1.com/privkey.pem;
      
          location / {
              proxy_pass http://localhost:3000;
              proxy_set_header Host $host; # 确保Next.js获取原始请求域名
              proxy_set_header X-Forwarded-Proto $scheme;
          }
      }
      
      # 强制HTTP跳转至HTTPS
      server {
          listen 80;
          server_name store1.com;
          return 301 https://$host$request_uri;
      }
      
    4. 让商户将自定义域名的A记录指向EC2公网IP
  • 核心优势:无需依赖ALB,适合小规模部署场景,证书自动续期成本极低
  • 注意事项:新增商户域名时需更新Nginx配置并重启服务;若EC2公网IP变动,所有商户需同步修改DNS记录,维护风险较高

方案3:Next.js直接处理SSL(不推荐生产环境使用)

  • 操作步骤:
    1. 为每个自定义域名获取SSL证书(可使用Let's Encrypt)
    2. 通过Next.js启动参数配置SSL,示例命令:
      next start --port 443 --ssl-cert /path/to/store1.com.crt --ssl-key /path/to/store1.com.key
      
    3. 若需支持多域名,需自定义Next.js服务器或使用http-proxy-middleware实现证书路由
  • 核心劣势:Next.js并非专业Web服务器,处理SSL和高并发的能力较弱,多域名场景下维护复杂度极高,不建议用于生产环境

内容的提问来源于stack exchange,提问作者Sayak-dutta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:12:35