如何在不使用ACM(AWS证书管理器)的情况下获取SSL证书的ARN(亚马逊资源名称)?

时间:2019-08-14 07:27:18

标签: amazon-web-services terraform terraform-provider-aws

我正在使用Terraform在位于中国的AWS宁夏地区创建Elastic Beanstalk环境。

让我感到困惑的一件事是如何获得SSLCertificateArns的价值?

  setting {
    namespace = "aws:elbv2:listener:443"
    name      = "SSLCertificateArns"
    value     = "arn:aws:acm:cn-northwest-1:012345678912:certificate/????????-????-????-????-????????????"  # Where to get this value?
  }

AWS中国目前不提供证书管理器服务。

我使用“加密”创建了证书,然后通过单击传统负载均衡器的SSL Certificate列来上传证书:

enter image description here

2 个答案:

答案 0 :(得分:0)

从ELB配置上载证书时,它将保存在IAM证书列表中,而不是ACM中。 您应该可以使用以下命令查看证书:

  

aws iam list-server-certificates

https://docs.aws.amazon.com/cli/latest/reference/iam/list-server-certificates.html

答案 1 :(得分:0)

您可以使用aws_iam_server_certificate根据证书的名称前缀来获取ARN:

data "aws_iam_server_certificate" "my-domain" {
  name_prefix = "my-domain.org"
  latest      = true
}

resource "aws_elb" "elb" {
  name = "my-domain-elb"

  listener {
    instance_port      = 8000
    instance_protocol  = "https"
    lb_port            = 443
    lb_protocol        = "https"
    ssl_certificate_id = "${data.aws_iam_server_certificate.my-domain.arn}"
  }
}