19

Я пытался прикрепить сертификат SSL, что я в настоящее время используется для одного из моих упругих балансировки нагрузки экземпляров на новом облаке Формирование шаблона, но каждый раз, когда я получаю:
Certificate Server не найден для ключа
И затем шаблон Cloudformation начинает откатываться назад в этот момент.Как подключить предварительно загруженный SSL-сертификат к ELB в шаблоне CloudFormation?

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

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

Я что-то пропустил на слушателя?

ответ

20

Я на самом деле понял, как это сделать во время ожидания ответа, вам нужно использовать инструменты IAM CLI, предоставляемые Амазонке, а затем использовать команду
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" 
    },... 
+0

Великий следить за ответ - помогло. – Aitch

+3

Также можно выполнить этот поиск непосредственно в образовании облаков. См. Https://forums.aws.amazon.com/message.jspa?messageID=248285. – Tristan

+1

Ответ Тристана хорошо объяснен @gene_wood в ответе ниже. –

29

Вы можете получить 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"}pseudo parameter и combines его с другими элементами, необходимыми для формирования ARN. Обратите внимание, что я использую переменную с именем Path, если вы установили путь для своего сертификата. Если не указано значение «/» по умолчанию.

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

+3

Определенно лучший ответ! –

+1

Очень круто! Если кто-то использует [cloudformation-ruby-dsl] (https: // github.com/bazaarvoice/cloudformation-ruby-dsl), вот один лайнер, вдохновленный этим ответом: ': SSLCertificateId => join ('', 'arn: aws: iam ::', aws_account_id(), ': server- сертификат/', ref (' SSLCertificateName ')) ' –

+0

@gene_wood Ответ соответствует сертификатам, выданным Amazon, но, возможно, не тем, которые я импортировал (из других сертификационных органов). Импортированным атрибутам присваивается идентификатор GUID как видимый в поле «Идентификатор» в ACM (Amazon Certificate Management). Кроме того, в марте 2018 года 1) «arn: aws: acm ::» представляется префиксом не:: iam :: », 2)« server-certificate »выглядит как«: certificate »(если только я не импортировал это неправильно). Вопрос: какое поле в ACM соответствует вашему «start_certname_com»: «Доменное имя», «Дополнительные имена», «Идентификатор», «Имя» (пользовательский тег)? – timmi4sa

3

Вот как вы получите длинное имя CERT с последней AWS CLI:

pip install awscli 
aws iam list-server-certificates 

 Смежные вопросы

  • Нет связанных вопросов^_^