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

AWS EB应用负载均衡后端HTTPS重终止时SSL证书不生效问题排查

EDIT 2

经排查确认我的DNS记录配置错误,导致证书本身有效但站点仍被标记为不安全。

我需要执行以下操作:

  • 为父域名而非子域名创建托管区域:无论子域名数量多少,都应为example.com创建托管区,而非subdomain.example.com
  • 联系域名管理员在父域名注册商(如GoDaddy、Namecheap等)处为每个子域名添加NS记录,而非CNAME记录
  • 为每个子域名配置别名记录,指向对应的EB环境

EDIT

我已为自定义域名申请了证书,但浏览器不信任该证书,因为当前站点是通过*.elasticbeanstalk.com域名对外提供服务的。我无法为非自有域名申请SSL证书,暂时没有解决思路。

浏览器证书报错截图

原始问题描述

我有一个使用Auth0的应用运行在AWS Elastic Beanstalk(EB)中,前端部署应用负载均衡(ALB)。

Auth0要求运行在安全环境中,因此我在ALB处终止HTTPS连接后重新加密,将HTTPS流量转发到EC2实例后再次终止HTTPS连接。

我配置了可信SSL证书,选择邮件验证方式经全局管理员批准后,将证书绑定到ALB。当前Route53托管区域内未配置任何CNAME记录。

另外团队已将GoDaddy上的父域名通过NS记录指向AWS Route53托管区域,配置的别名记录可正常路由到应用,路由功能完全正常。

但访问站点时始终提示不安全,我已在多台设备测试排除缓存问题。

EC2实例上部署了自签名证书,我不确定对外暴露的是实例自签名证书还是ALB绑定的ACM证书,目前看大概率是实例证书被对外暴露。

我不清楚如何在实例侧使用ACM中的证书,根据AWS官方文档,后端使用自签名证书应该不会有问题。

相关配置截图

  • ALB监听器配置:应用负载均衡监听器配置截图
  • ACM中的证书ARN与上述配置匹配:ACM证书配置截图

参考的官方文档

以下配置文件均参考官方文档配置:

  1. 为Elastic Beanstalk环境配置HTTPS
  2. 通过Elastic Beanstalk控制台配置安全监听器
  3. 在负载均衡型Elastic Beanstalk环境中配置端到端加密
  4. 在运行Node.js的EC2实例上终止HTTPS连接
  5. 配置应用在实例侧终止HTTPS连接

.ebextensions配置文件

我在应用根目录的.ebextensions文件夹下添加了如下.config文件:

https-instance-securitygroup.config

Resources:
      sslSecurityGroupIngress: 
        Type: AWS::EC2::SecurityGroupIngress
        Properties:
          GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
          IpProtocol: tcp
          ToPort: 443
          FromPort: 443
          CidrIp: 0.0.0.0/0

.ebextensions/https-reencrypt-alb.config

option_settings:
  aws:elbv2:listener:443:
    DefaultProcess: https
    ListenerEnabled: 'true'
    Protocol: HTTPS
  aws:elasticbeanstalk:environment:process:https:
    Port: '443'
    Protocol: HTTPS

.ebextensions/https-instance.config

files:
  /etc/nginx/conf.d/https.conf:
    mode: "000644"
    owner: root
    group: root
    content: |
      # HTTPS server

      server {
          listen       443;
          server_name  localhost;
          
          ssl                  on;
          ssl_certificate      /etc/pki/tls/certs/server.crt;
          ssl_certificate_key  /etc/pki/tls/certs/server.key;
          
          ssl_session_timeout  5m;
          
          ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
          ssl_prefer_server_ciphers   on;

          # For enhanced health reporting support, uncomment this block:

          #if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") {
          #    set $year $1;
          #    set $month $2;
          #    set $day $3;
          #    set $hour $4;
          #}
          #access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd;
          #access_log  /var/log/nginx/access.log  main;
          
          location / {
              proxy_pass  http://nodejs;
              proxy_set_header   Connection "";
              proxy_http_version 1.1;
              proxy_set_header        Host            $host;
              proxy_set_header        X-Real-IP       $remote_addr;
              proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header        X-Forwarded-Proto https;
          }
      }
      
  /etc/pki/tls/certs/server.crt:
    mode: "000400"
    owner: root
    group: root
    content: |
      -----BEGIN CERTIFICATE-----
      certificate file contents
      -----END CERTIFICATE-----

privatekey.config

Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          buckets: ["application-keys"]
          roleName: 
            "Fn::GetOptionSetting": 
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-ec2-eb-*****-role"
files:
  # Private key (backend_app_server)
  "/etc/pki/tls/certs/server.key":
    mode: "000400"
    owner: root
    group: root
    authentication: "S3Auth"
    source: https://****.amazonaws.com/****.pem

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:27:03