带 ssl 和自定义健康检查 url(在不同端口上)的 Elastic Beanstalk 不工作

Elasticbeanstalk with ssl and custom healh check url (on a different port) not working

我昨天使用弹性 beantalk 并成功添加了一个 letsencrypt https 证书。但是现在,我的自定义健康检查将我的系统状态设置为红色。

如果我删除 ssl 配置(所有带有命名空间“"namespace:aws:elb:listener:443"”的属性)。健康检查它正在工作。

这不是端口问题,我允许 public 暂时访问该端口。

我忘记了什么?

谢谢 马塞尔

我的 ebextension 配置是这样的:


Resources:
  healthPort: 
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
      IpProtocol: tcp
      ToPort: 7979
      FromPort: 7979
      SourceSecurityGroupName: { "Fn::GetAtt": ["AWSEBLoadBalancer", "SourceSecurityGroup.GroupName"] }

option_settings:

  - namespace:  aws:elasticbeanstalk:application
    option_name:  Application Healthcheck URL
    value: HTTP:7979/health

option_settings:
  - namespace: aws:elb:listener:80
    option_name: ListenerEnabled
    value: true

  - namespace: aws:elb:listener:80
    option_name: ListenerProtocol
    value: HTTP

  - namespace: aws:elb:listener:80
    option_name: InstancePort
    value: 80

  - namespace: aws:elb:listener:80
    option_name: InstanceProtocol
    value: HTTP

  - namespace: aws:elb:listener:443
    option_name: ListenerEnabled
    value: true

  - namespace: aws:elb:listener:443
    option_name: ListenerProtocol
    value: HTTPS

  - namespace: aws:elb:listener:443
    option_name: InstancePort
    value: 80

  - namespace: aws:elb:listener:443
    option_name: InstanceProtocol
    value: HTTP

  - namespace: aws:elb:listener:443
    option_name: SSLCertificateId
    value: xxx

问题是 ELB 没有权限连接到 7979 端口。我不知道为什么它会发生,如果我启用 ssl 但现在它可以工作了。