无法在cloudformation中使用https设置我的弹性负载均衡器

时间:2017-10-11 19:27:50

标签: amazon-web-services elastic-beanstalk amazon-cloudformation amazon-elastic-beanstalk aws-opsworks

我在启用https protocl的情况下设置beanstalk的cloudformation时遇到问题。

以下是我的配置设置:

 configurationTemplateUI:
Type: AWS::ElasticBeanstalk::ConfigurationTemplate
DependsOn: BeanstalkAppUI
Properties:
  ApplicationName:
    Ref: BeanstalkAppUI
  Description: AWS ElasticBeanstalk Sample Configuration Template
  OptionSettings:
  - Namespace: aws:autoscaling:asg
    OptionName: MinSize
    Value:
      Ref: MinEc2s
  - Namespace: aws:autoscaling:asg
    OptionName: MaxSize
    Value:
      Ref: MaxEc2s
  - Namespace: aws:elasticbeanstalk:environment
    OptionName: EnvironmentType
    Value: LoadBalanced
  - Namespace: aws:autoscaling:launchconfiguration
    OptionName: InstanceType
    Value:
      Ref: InstanceType
  - Namespace: aws:ec2:vpc
    OptionName: VPCId
    Value:
      Fn::ImportValue: !Sub ${BusinessUnit}-${EnvironmentInfra}-vpc-VpcId
  - Namespace: aws:ec2:vpc
    OptionName: Subnets
    Value:
      Fn::ImportValue: !Sub ${BusinessUnit}-${EnvironmentInfra}-vpc-SubnetIdPrivate${SubnetAvNumber}
  - Namespace: aws:ec2:vpc
    OptionName: ELBSubnets
    Value:
      Fn::ImportValue: !Sub ${BusinessUnit}-${EnvironmentInfra}-vpc-SubnetIdPublic${SubnetAvNumber}
  SolutionStackName:
    Ref: BeanstalkPackInstallationUI

如你所见,我拥有所有价值观,而且当我运行它时,这非常有用。我没有找到任何关于如何使用https设置Elb的选项。我可以在网络部分的beanstalk配置中手动在控制台中完成它。

有人能说清楚吗?是否有可能在云计算中?

2 个答案:

答案 0 :(得分:1)

我建议您查看aws:elb:listener:listener_port命名空间。

以下是我认为您可能会发现有用的一些选项:

- Namespace: aws:elb:listener:443
  OptionName: ListenerProtocol
  Value: HTTPS
- Namespace: aws:elb:listener:443
  OptionName: InstancePort
  Value: 80
- Namespace: aws:elb:listener:443
  OptionName: InstanceProtocol
  Value: HTTP
- Namespace: aws:elb:listener:443
  OptionName: SSLCertificateId
  Value: arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012

在此示例中,它将 ELB 配置为接受 HTTPS 请求,并使用 ACM 证书arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012提供这些请求。 SSL在ELB处终止,并且使用标准HTTP执行与后备 EC2 实例的连接。

希望有所帮助。

修改

出于某种原因,在较新的样式aws:elb:listener:listener_port选项中没有遵守CloudFormation Elastic Beanstalk选项,但是提问者能够使用旧版aws:elb:loadbalancer选项找到成功

- Namespace: aws:elb:loadbalancer
  OptionName: LoadBalancerHTTPPort
  Value: '80'
- Namespace: aws:elb:loadbalancer
  OptionName: LoadBalancerHTTPSPort
  Value: '443'
- Namespace: aws:elb:loadbalancer
  OptionName: SSLCertificateId
  Value: arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012

答案 1 :(得分:1)

我相信使用应用程序负载平衡器时,设置为:

        - Namespace: aws:elbv2:listener:443
          OptionName: ListenerEnabled
          Value: true
        - Namespace: aws:elbv2:listener:443
          OptionName: Protocol
          Value: HTTPS
        - Namespace: aws:elbv2:listener:443
          OptionName: SSLCertificateArns
          Value: arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012