Сайт Gatsby, обслуживающий EC2 с узлом pm2 с балансировщиком нагрузки aws classi c, нуждается в https - PullRequest
0 голосов
/ 27 мая 2020
• 1000 Однако мне нужно отобразить эту страницу как iframe в sanity.io в качестве предварительного просмотра в Интернете, и для этого требуется https.

Я прочитал это https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-create-https-ssl-load-balancer.html, и большинство из них довольно по большей части прямо вперед.

То, что я сделал до сих пор, - это создание прослушивателя для 443 https на балансировщике нагрузки и добавление https 443 в группу безопасности. Я успешно выпустил сертификат для поддомена, который я использую с aws, и прикрепил его к прослушивателю loadbalancer.

У Гэтсби есть статья о настраиваемых сертификатах для режима разработки здесь https://www.gatsbyjs.org/docs/local-https/#custom -key-and-certificate-files Я ищу файл сертификата, авторитетный файл и ключ файл, чтобы передать эту команду ниже

Где в диспетчере сертификатов aws мне найти эти файлы. Я думаю, что это последняя часть, которая мне нужна для работы https, поправьте меня, если я ошибаюсь.

заранее спасибо.

gatsby develop --https --key-file ../relative/path/to/key.key --cert-file ../relative/path/to/cert.crt --ca-file ../relative/path/to/ca.crt

Это процесс, который я использовал для запроса сертификата, и в нем говорится, что он выдан https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html

Но как мне использовать его с настраиваемой командой https с gatsby?

Существует вариант экспорта, но он говорит только о закрытых ключах. Нужно ли мне создавать закрытый ключ, а затем я могу экспортировать нужные мне файлы?

Мне вообще нужно запускать https на стороне gatsby. Я смотрел видео, используя apache, и на сервере apache не было внесено никаких изменений, чтобы https работал с балансировщиком нагрузки.

Вот скриншот моего слушателя балансировщика нагрузки

enter image description here

Вот изображение моих групп безопасности

enter image description here

Если я запускаю --https для разработки gatsby, мой сайт ломается, я больше не могу посещать его через loadbalancer или порт 8000. Так что не знаю, что здесь делать.

1 Ответ

1 голос
/ 29 мая 2020

Я бы посоветовал не шифровать соединение между вашим ELB и экземплярами EC2. Если ваши экземпляры EC2 не являются общедоступными, а вместо этого доступны только через балансировщик нагрузки, рекомендуется разорвать SSL-соединение на балансировщике нагрузки. Нет необходимости шифровать HTTP-запросы внутри AWS VP C (т.е. между ELB и целевыми экземплярами).

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

Существует некоторое обсуждение (например, в блоге Кевина Берка), нужно ли шифровать трафик c внутри VP C. [2] Однако большинство людей, вероятно, этого не делают.

Что это значит для вас: Используйте тот же протокол экземпляра для ваших целей, что и раньше: HTTP через порт 8000 для обоих слушателей. Не настраивайте SSL для своей службы Gatsby. Вместо этого используйте простую конфигурацию HTTP-сервера. При использовании завершения SSL на балансировщике нагрузки не требуется вносить изменения в целевые объекты ELB.

Ссылки

[1] https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-create-https-ssl-load-balancer.html
[2] https://acloud.guru/forums/aws-certified-security-specialty/discussion/-Ld2pfsORD6ns5dDK5Y7/tlsssl-termination?answer=-LecNy4QX6fviP_ryd7x

...