Как использовать в приложении AWS Opsworks сертификат, купленный в AWS Certificate Manager?

У меня есть приложение Rails, развернутое на AWS Opsworks. Недавно я связал домен, купленный AWS SES, и получил сертификат в AWS Certificate Manager для этого домена.

Согласно документации, поддерживаемые службы:

  • Эластичная балансировка нагрузки
  • Amazon CloudFront
  • AWS Elastic Beanstalk
  • Amazon API Gateway

Первое решение, которое я придумал, - добавить эластичную балансировку нагрузки на мой уровень и связать домен и сертификат с его эластичным IP-адресом.

Кто-нибудь испытал такую ​​же проблему? Не могли бы вы предложить лучшее решение?

Например. Есть ли способ получить сертификат SSL и ключ сертификата SSL из ACM, чтобы добавить его в настройки моего приложения в Opsworks?


person mabe02    schedule 03.05.2017    source источник


Ответы (2)


Вы не можете получить ключ сертификата SSL, сгенерированный ACM, поскольку вы сказали, что он должен использоваться только 4 сервисами, предоставляемыми AWS выше.

Единственное решение, которое вы можете попробовать, - это связать сертификат ACM с ELB и выполнить разгрузку SSL на уровне ELB, поэтому, по сути, ваша конфигурация прослушивателя будет 443 TCP на какой-то незащищенный порт в экземпляре (связать ELB с уровнем).

person Manish Joshi    schedule 09.05.2017
comment
Спасибо за ваше предложение. Я создал в EC2 балансировщик нагрузки и целевую группу с моим экземпляром Opsworks. В Route53 мне удалось связать свой домен с псевдонимом ELB, и я также связал сертификат. - person mabe02; 09.05.2017
comment
Однако, когда я принудительно использовал Rails 5 config.force_ssl=true, я не могу перенаправить трафик, поскольку экземпляр зарегистрирован в целевой группе с портом 80, и я не могу включить SSL на уровне приложения без предоставления ключа сертификата. Более того, проверка работоспособности моего экземпляра в целевой группе вернула неисправность с ошибкой 302. - person mabe02; 09.05.2017
comment
@ mabe02 Похоже, вы используете балансировщики нагрузки приложений, в ALB вы также должны зарегистрировать свою целевую группу с помощью HTTPS (443) и выбрать сертификат SSL из раскрывающегося списка, а затем направить трафик на свой экземпляр. Выполняя разгрузку SSL на уровне ALB, вы гарантируете, что трафик SSL не достигнет вашего экземпляра, и, следовательно, вам не нужно принудительно использовать ssl на уровне экземпляра. - person Manish Joshi; 11.05.2017
comment
Спасибо за ваш комментарий. На самом деле я забыл закрыть эту тему, так как нашел решение, описанное в только что опубликованном ответе. Я использовал классический балансировщик нагрузки вместо ALB, но полагаю, что поведение должно быть примерно таким же. - person mabe02; 20.07.2017

На самом деле после некоторых попыток мне удалось добиться этого, выполнив следующие действия:

  • добавить балансировку нагрузки в EC2
  • укажите LB на экземпляры Opsworks
  • добавить сертификат в LB
  • правильно установить конфигурацию слушателей в группах безопасности
  • создать новый RecordSet в размещенных зонах Route53
  • добавить RecordSet LB как Alias ​​Target

Я написал статью на LinkedIn Pulse где я выложил несколько скриншотов и подробное объяснение.

person mabe02    schedule 20.07.2017