Cloudfront:此请求已被阻止,内容必须通过 HTTPS 提供

Cloudfront: This request has been blocked and content must be served over HTTPS

我有一个 EC2 服务器,它使用 HTTP 为后端服务到 S3 存储桶前端,当我使用 S3 地址到 运行 应用程序时,它工作正常。但是,在我部署到 Cloudfront 之后,出现以下错误:

Mixed Content: The page at 'https://d3qxpzawaycmw5.cloudfront.net/#/employees' was loaded over HTTPS, but requested an 
insecure resource 'http://ec2-3-86-60-146.compute-1.amazonaws.com:3030/api/Employees?'. This request has been blocked; 
the content must be served over HTTPS.

这表明 BE 必须使用 HTTPS 提供服务。如果我无法为 BE 更改任何内容,是否有使用 Cloudfront 的解决方案?

谢谢。

如果您不想,则无需更改实例中的任何内容。为您的实例获取 HTTPS 的最简单方法是在其前面使用 Load Balancer,如以下所述:

但对于此方法和任何其他方法,您需要您自己的域,因为您需要一个有效的 public SSL 证书。如果您使用负载均衡器,您可以轻松地从 AWS ACM 获得免费的 SSL 证书。

但是如果 ALB 对您来说太多了,那么您需要在实例上部署 SSL。这仍然需要您自己的域,但您不能使用 ACM。相反,您可以从 https://letsencrypt.org/.

获得免费的 SSL 证书