Подтвердить что ты не робот

Как подключить предварительно загруженный SSL-сертификат к ELB в шаблоне CloudFormation?

Я пытаюсь подключить SSL-сертификат, который в настоящее время я использую для одного из моих экземпляров балансировки эластичной нагрузки в новом шаблоне Cloud Formation, но каждый раз, когда я получаю:  Сертификат сервера не найден для ключа
Затем шаблон Cloudformation начинает откатываться назад.

            "Listeners" : [ 
         {
          "LoadBalancerPort" : "443",
          "InstancePort" : "80",
          "SSLCertificateId" : "start_certname_com",
          "Protocol" : "HTTPS"
         },...

Amazon просит использовать ARN сертификата SSL. и я считаю, что это правильно, поскольку это точная строка, которая появляется в раскрывающемся списке текущего настроенного ELB, который берет 443 в порт 80 на экземплярах.

Мне что-то не хватает на моем слушателе?

4b9b3361

Ответ 1

Я действительно понял, как это сделать, ожидая ответа, вам нужно использовать инструменты CLI IAM, предоставляемые amazon, а затем использовать команду
iam-servercertgetattributes -s certname

Это даст вам строку типа:

arn:aws:iam::123456789123:server-certificate/start_certname_com

Это значение, которое вы поместите в поле пары значений "SSLCertificateId"

Инструкции по настройке инструментов командной строки IAM (CLI) можно найти по адресу: http://docs.aws.amazon.com/IAM/latest/CLIReference/Setup.html

Загрузите набор инструментов с aws здесь
http://aws.amazon.com/developertools/AWS-Identity-and-Access-Management/4143

В целом ваш последний блок будет выглядеть так:

 "Listeners" : [ 
    {  
      "LoadBalancerPort" : "443",  
      "InstancePort" : "80",  
      "SSLCertificateId" : "arn:aws:iam::123456789123:server-certificate/start_certname_com",  
      "Protocol" : "HTTPS"  
     },...  

Ответ 2

Вы можете получить ARN для сертификата в CloudFormation с именем сертификата. Не нужно запускать инструмент командной строки и жестко кодировать значение в шаблон CloudFormation.

    "Parameters":{
      "Path":{
         "Description":"AWS Path",
         "Default":"/",
         "Type":"String"
      }
    }
     ...
        "Listeners" : [ 
     {
      "LoadBalancerPort" : "443",
      "InstancePort" : "80",
      "SSLCertificateId" : {
        "Fn::Join":[
           "",
           [
              "arn:aws:iam::",
              {
                 "Ref":"AWS::AccountId"
              },
              ":server-certificate",
              {
                 "Ref":"Path"
              },
              "start_certname_com"
           ]
        ]
      },
      "Protocol" : "HTTPS"
     },...

Это определяет идентификатор вашей учетной записи с псевдонимом {"Ref":"AWS::AccountId"} и объединяет его с другими элементами, необходимыми для формирования ARN. Обратите внимание, что я использую переменную с именем Path, если вы установили путь для своего сертификата. Если значение по умолчанию "/" не работает,

Это решение было упомянуто @Tristan и является расширением merrix143243 solution

Ответ 3

Здесь вы получите длинное имя сертификата с последним AWI CLI:

pip install awscli
aws iam list-server-certificates