如何将 aws 证书管理器连接到 terraform 中的 aws_alb_listener?

Jon*_*Sud 3 amazon-web-services terraform terraform-provider-aws

我在 aws 证书管理器中有证书。

在此输入图像描述

如何将此证书连接到aws_alb_listenerterraform?

现在我从计算机中的文件中获取证书。

resource "aws_alb_listener" "alb_front_https" {
    load_balancer_arn   =   "${aws_alb.demo_eu_alb.arn}"
    port            =   "443"
    protocol        =   "HTTPS"
    ssl_policy      =   "ELBSecurityPolicy-TLS-1-2-Ext-2018-06"
    certificate_arn     =   "${aws_iam_server_certificate.lb_cert.arn}"
    default_action {
        target_group_arn    =   "${aws_alb_target_group.nginx.arn}"
        type            =   "forward"
    }
}

resource "aws_iam_server_certificate" "lb_cert" {
  name              = "lb_cert-${var.app}"
  certificate_body  = "${file("./www.xxx.com/cert.pem")}"
  private_key       = "${file("./www.xxx.com/privkey.pem")}"
  certificate_chain = "${file("./www.xxx.com/chain.pem")}"
}
Run Code Online (Sandbox Code Playgroud)

我想aws_alb_listener在 aws 证书管理器上使用证书。

如何在地形中做到这一点?

小智 7

您可以使用以下方式获取证书 ARN:

data "aws_acm_certificate" "certificate" {
  domain      = "your.domain"
  statuses    = ["ISSUED"]
  most_recent = true
}
Run Code Online (Sandbox Code Playgroud)

然后将其附加到侦听器

resource "aws_lb_listener_certificate" "ssl_certificate" {
  listener_arn    = aws_lb_listener.alb_front_https.arn
  certificate_arn = data.aws_acm_certificate.certificate.arn
}
Run Code Online (Sandbox Code Playgroud)