Не удается заставить https работать с балансировщиком эластичных нагрузок (AWS)

У меня есть балансировщик нагрузки спереди в экземпляре ec2-Classic. Я проверил, что балансировщик нагрузки работает правильно, напрямую связавшись с именем DNS-имени, указанным на вкладке "Описание" для моего балансировщика нагрузки. Это дает мне основную страницу веб-страницы, которая находится на экземпляре EC2. Таким образом, мой балансировщик работает. Мой балансировщик нагрузки и мой экземпляр EC2 находятся в одной и той же зоне доступности.

Мой балансировщик нагрузки установил SSL-сертификат, и у меня есть две настройки для отправки http (порт 80) и https (порт 443) в порт экземпляра 80 в качестве http. Мой экземпляр EC2 имеет группу безопасности, которая принимает HTTP и https с протоколом TCP на портах 80 и 443 соответственно. Хотя я понимаю, что только порт 80 будет полезен, не так ли? Данные для сертификата указаны в формате pem. Я добавил в группу безопасности экземпляра пользовательский TCP в диапазоне портов 0 - 65535 для amazon-elb/amazon-elb-sg. Это ничего не делало.

Я могу получить доступ к моему сайту, используя http просто отлично. Если я попытаюсь получить доступ с помощью https, я получу код ошибки: ERR_CONNECTION_REFUSED в Chrome и не удается подключиться к Firefox.

Я проверил похожие сообщения для этого вопроса, и ничего не помогает.

Любая помощь или идеи будут высоко оценены. Благодаря

Ответ 1

Вы уверены, что ELB находится в группе безопасности, которая позволяет https на порту 443?

Ответ 2

У меня была похожая проблема с классическим и продвинутым балансировщиком нагрузки. Единственное, чего мне не хватало, так это того, что переводчик https to http работает только после того, как вы сделали запись A в DNS для домена, для которого ваш SSL включен в ALIASED для только что созданного балансировщика нагрузки. Как только я это сделал, все было хорошо через эту новую запись DNS. Ваш экземпляр не должен принимать порт 443, и ваш LB определенно не должен пересылать через 443.

Надеюсь, что это так же просто для вас.

Подождите, какой SSL-сертификат в формате PEM? Я использовал SSL сертификат SSL, который я только что получил из выпадающего списка. Вы уверены, что использовали сертификат SSL?

Ответ 3

В вашем описании я вижу, что, возможно, вы не следуете шагу 6 из руководства Amazon "Упругая балансировка нагрузки в Amazon EC2-Classic → Создать балансировщик нагрузки HTTPS/SSL с помощью Консоли управления AWS → Настройка прослушивателей".

Там говорится, что вы должны настроить "HTTPS (...) в протоколе балансировки нагрузки [и] HTTPS (безопасный HTTP) (...) в окне протокола экземпляра.", Тогда как в вашей конфигурации вы пересылаете ELB 443 на порт 80 в инстанции.

Для дальнейшего ознакомления это руководство, о котором я говорю, DEAD LINK http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/configure-https-listener.html DEAD LINK

Кроме того, проверьте, правильно ли построен ваш SSL-сертификат в соответствии с правилами, указанными здесь: http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ssl-server-cert.html