我有一个网页托管在S3 bucket中,它是为HTTPS设置的。
我的后端运行在一个AWS Lightsail实例上,该实例具有一个静态IP地址,我的前端请求该地址以获取JSON数据。该服务器是在Docker容器中运行的Python Flask服务器。
当我运行docker run -p 443:MY_PORT ...
(端口443是Lightsail的HTTPS端口(时,我无法使前端与服务器通信。相反,我得到了这个错误:
spread.js:25混合内容:'https://www.bible-it.com/'是通过HTTPS加载的,但请求了一个不安全的XMLHttpRequest端点。。。此请求已被阻止;必须通过HTTPS提供内容。
如果我通过端口80运行docker命令,就没有问题。
为我的Lightsail实例设置HTTPS的最佳方式是什么
如果我的设置
前端:s3铲斗
后台:Lightsail>Ubuntu>Docker>Python Flask
设置不好,请告诉我。我自学成才,希望得到一些指导。非常感谢。
正如错误消息所说,您的服务器无法通过HTTPS正确地提供内容。这可能有几个原因:
- 您的请求将重定向到HTTP。请确保您的服务器不会执行此操作
- 您的Lightsail实例不允许HTTPS连接。在这种情况下,您必须更新实例的防火墙
- 您的TLS/SSL证书设置不正确。在这种情况下,您可以使用例如Let's Encrypt,并按照他们的文档进行正确的设置
最后一个提示:
如果我理解正确,那么您正在开发服务器上运行应用程序。如果您使用运行Flask应用程序,情况就是这样
from Flask import Flask
app = Flask(__name__)
app.run()
通常,您不应该在生产中使用开发服务器。
它不是为了特别高效、稳定或安全而设计的。它不支持HTTP服务器的所有可能功能。
您可以在本次讨论中阅读有关此方面的更多信息。