在Terraform创建的ALB上强制使用SSL

时间:2019-12-02 11:59:36

标签: amazon-web-services amazon-elastic-beanstalk terraform

我正在使用Terrform创建弹性beantalk应用程序和环境,但是由弹性beantalk创建的ALB启用了SSL和非SSL路由。我想在我的应用上强制使用SSL。

我尝试过

从elasticbeanstalk资源中获取负载均衡器列表,然后为端口80创建规则以重定向到

data "aws_lb" "loadbalancer" {
    arn = aws_elastic_beanstalk_environment.env.load_balancers[0]
}

resource "aws_lb_listener" "front_end" {
    load_balancer_arn = data.aws_lb.loadbalancer.arn
    port              = "80"
    protocol          = "HTTP"

    default_action {
        type = "redirect"

        redirect {
            port        = "443"
            protocol    = "HTTPS"
            status_code = "HTTP_301"
        }
    }
}

这应该可以正常工作,但是如果没有规则,但是会失败,因为elasticbeanstalk默认使用

创建两个规则
Error: Error creating LB Listener: DuplicateListener: A listener already exists on this port for this load balancer 'arn:aws:elasticloadbalancing:us-east-1:834165423586:loadbalancer/app/awseb-AWSEB-1DP9LOBL5ZLTQ/b17cc8dc2ba5f0a6'
    status code: 400, request id: 9e97b410-b3a5-4e64-b451-d7d1c5e3191e

任何帮助将不胜感激

0 个答案:

没有答案