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

如何为Elastic Beanstalk默认URL配置SSL以启用HTTPS

如何让Elastic Beanstalk默认使用HTTPS并解决证书不匹配错误

一、先理清证书错误的核心原因

你遇到的NET::ERR_CERT_COMMON_NAME_INVALID错误,本质是证书与访问域名不匹配:你导入的是自有域名的SSL证书,但访问的却是Elastic Beanstalk提供的默认域名(比如http://exy-env.eba-b3k8jne90.ap-south-1.elasticbeanstalk.com)。亚马逊的默认域名无法使用第三方SSL证书,必须绑定你自己的自定义域名,并使用对应该域名的证书。

二、分步完成HTTPS配置

1. 绑定自定义域名到Elastic Beanstalk环境

  • 登录AWS控制台,进入Elastic Beanstalk服务,打开你的Node.js环境
  • 切换到「配置」标签页,找到「负载均衡器」配置项,点击「编辑」
  • 在「域名」区域点击「添加域名」,输入你的自定义域名(比如api.yourdomain.com),保存配置
  • 前往你的域名服务商后台,添加一条CNAME记录,将自定义域名指向Elastic Beanstalk的默认域名

2. 申请并导入对应自定义域名的SSL证书

  • 登录AWS控制台,进入Certificate Manager(ACM)服务
  • 点击「请求证书」,选择「公有证书」,进入下一步
  • 输入你的自定义域名(支持通配符,如*.yourdomain.com),点击下一步
  • 选择DNS验证方式(推荐),按照提示在域名服务商后台添加指定的DNS解析记录,等待AWS验证完成(通常几分钟到1小时)
  • 验证通过后,证书会显示「已颁发」状态

3. 配置负载均衡器启用HTTPS

  • 回到Elastic Beanstalk的「配置」标签页,再次编辑「负载均衡器」配置项
  • 在「监听器」区域点击「添加监听器」:
    • 协议选「HTTPS」,端口填「443」
    • 从下拉列表中选中你在ACM中颁发的对应自定义域名的证书
    • 目标协议选「HTTP」,目标端口填「80」(负载均衡器会自动解密HTTPS请求,转发到Node.js服务的HTTP端口)
  • 保存配置,等待Elastic Beanstalk更新环境(约几分钟)

4. 强制HTTP自动跳转HTTPS

有两种实现方式,任选其一即可:

  • 负载均衡器层面(推荐):回到「负载均衡器」配置的「监听器」,找到默认的HTTP(80端口)监听器,点击「编辑」,将「默认操作」改为「重定向到HTTPS」,端口填443,保存配置
  • Node.js服务层面:在你的Node.js代码中添加中间件,通过负载均衡器转发的x-forwarded-proto头判断请求协议,实现跳转:
    app.use((req, res, next) => {
      if (req.headers['x-forwarded-proto'] !== 'https') {
        return res.redirect(`https://${req.headers.host}${req.url}`);
      }
      next();
    });
    

5. 验证配置

  • 等待环境更新完成后,访问你的自定义域名(如https://api.yourdomain.com),确认浏览器显示安全锁且服务正常响应
  • 测试HTTP访问(如http://api.yourdomain.com),确认自动跳转到HTTPS

常见问题排查

  • 仍出现证书错误:检查证书绑定的域名与访问的自定义域名是否完全一致(比如证书是api.yourdomain.com,就不能用www.yourdomain.com访问)
  • HTTPS无法访问:检查负载均衡器的安全组是否开放了443端口,确保入站规则允许TCP 443流量
  • 跳转不生效:检查负载均衡器的HTTP监听器重定向配置,或Node.js中间件是否正确读取x-forwarded-proto头

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 02:42:42