Настройка HTTPS для AWS бэкэнда Lightsail - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть веб-страница, размещенная в корзине S3, и она настроена для HTTPS.

Мой сервер работает на экземпляре AWS Lightsail с stati c IP-адресом, который находится у меня на передней панели. -end делает запросы на получение JSON данных. Сервер является сервером Python Flask, работающим в контейнере Docker.

Когда я запускаю docker run -p 443:MY_PORT ... (порт 443 - это порт Lightsail HTTPS), я не могу заставить свой интерфейс взаимодействовать с сервером. Вместо этого я получаю эту ошибку:

распространение. js: 25 Смешанное содержимое: страница в 'https://www.bible-it.com/' была загружена через HTTPS, но запросила небезопасную конечную точку XMLHttpRequest ... Этот запрос был заблокирован; содержимое должно быть передано по протоколу HTTPS.

Нет проблем, если я выполню команду docker через порт 80.

Как лучше всего настроить HTTPS для моего экземпляра Lightsail?

Также, если мои настройки

FRONTEND: s3 Bucket

BACKEND: Lightsail> Ubuntu> Docker> Python Flask

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

1 Ответ

0 голосов
/ 28 апреля 2020

Как говорится в сообщении об ошибке, ваш сервер не обслуживает контент должным образом по HTTPS. Это может иметь несколько причин:

  • Ваши запросы перенаправляются на HTTP. Убедитесь, что ваш сервер этого не делает.
  • Ваш экземпляр Lightsail не разрешает HTTPS-соединения. В этом случае вам необходимо обновить брандмауэр вашего экземпляра .
  • Ваш сертификат TLS / SSL настроен неправильно. В этом случае вы можете использовать, например, Let's Encrypt и следовать их документации для правильной настройки.


Последний совет:

Если я вас понимаю правильно, вы запускаете приложение на сервере разработки. Это тот случай, если вы запускаете ваше приложение Flask с

from Flask import Flask
app = Flask(__name__)
app.run()

В общем случае вам не следует использовать сервер разработки в рабочей среде.

Оно не предназначено для быть особенно эффективным, стабильным или безопасным. Он не поддерживает все возможные функции HTTP-сервера.

Подробнее об этом можно прочитать в этом обсуждении .

...