aws elastic beanstalk / S3 该页面是通过 HTTPS 加载的,但请求了一个不安全的 XMLHttpRequest 端点

Posted

技术标签:

【中文标题】aws elastic beanstalk / S3 该页面是通过 HTTPS 加载的,但请求了一个不安全的 XMLHttpRequest 端点【英文标题】:aws elastic beanstalk / S3 The page was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 【发布时间】:2021-09-04 07:25:28 【问题描述】:

我有一个使用 AWS Elastic Beanstalk 部署的 Spring Boot 应用程序,我将 S3 存储桶用于我的 Angular 应用程序。 我已经使用 aws 证书管理器生成了证书并创建了 CloudFront Distribution,因此我的 Angular 应用程序加载到 https 上。 问题是我从 Https 部署的应用程序调用一个休息 API 到 Http 休息 API。 我不断收到此错误: 混合内容:“https://mywebsite.com”页面通过 HTTPS 加载,但请求了不安全的 XMLHttpRequest 'http://myendpoint'。此请求已被阻止;内容必须通过 HTTPS 提供。

我尝试在我的 Spring Boot 应用程序中生成我自己的证书,它在本​​地工作,但是一旦部署在弹性 beanstalk Web 服务上就没有响应。

关于如何使用 https / beanstalk 的任何提示?

【问题讨论】:

您好,我的回答解决了您的问题吗? 嗨 stefan 谢谢你回答我,你的回答确实帮了我很多,因为你说我只需要启用 ALB,我的问题就会立即出现,我配置了 https 默认端口 (443) 链接使用证书管理器生成的 ssl 证书和我的 Web 服务通过 HTTPS 公开,非常感谢 很高兴听到这个消息! 【参考方案1】:

错误信息清楚地概括了问题。对于看似安全加密的网页,允许未加密的数据传输将是一个巨大的安全问题。

此外,您并不想在您的实例上执行 SSL 终止,出于性能原因,您不想手动管理密钥等等。

在您的情况下,我建议在您的 ALB 前设置 CloudFront 分配(我假设您有)。这将立即解决您的问题,因为 CloudFront 会自动为您设置域并通过 HTTPS 公开您的端点。之后,如果您决定,您可以轻松设置自定义域和证书。

最后,我推荐reading this article 以确保您在配置 ALB 和 CloudFront 时避免常见的陷阱。

最好的,斯特凡

【讨论】:

以上是关于aws elastic beanstalk / S3 该页面是通过 HTTPS 加载的,但请求了一个不安全的 XMLHttpRequest 端点的主要内容,如果未能解决你的问题,请参考以下文章

将 create-react-app 部署到 AWS Elastic Beanstalk

Amazon Elastic BeanStalk 错误:无法创建 AWS Elastic Beanstalk 应用程序版本

[AWS] Elastic Beanstalk

AWS Elastic Beanstalk CLI 安装错误

text AWS Elastic Beanstalk

HTTPS Elastic Beanstalk (AWS) 到 Android