ssl Laravel XHR请求被阻止

1l5u6lss  于 2023-05-29  发布在  其他
关注(0)|答案(1)|浏览(160)

我是一名DevOps工程师,我不是Laravel和Web开发方面的Maven。
最近,我们决定重构我们的monolith应用程序,它在一个服务器上。新的要求是在EKS集群上部署应用程序。
我创建了集群并将相同的源代码部署到EKS集群。在集群的前面,有一个ALB,其重定向规则为从http到https。
该应用程序似乎与https运行良好,但我发现一些页面损坏,因为有一些XHR请求被阻止,由于混合内容的问题。这些请求由http而不是https提供,但由https提供的其他资源和请求。

错误:

jquery.js:9837 Mixed Content: The page at 'https://testapp.com/dashboard/branch/bookings' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://testapp.com/dashboard/branch/bookings/get_bookings?draw=1&columns...'. This request has been blocked; the content must be served over HTTPS.

我确保.env文件中的APP_URL使用https。

**注意:**应用程序在一台服务器上运行良好。
**注意:**我们使用cloudflare作为SSL证书的代理。

这到底是什么原因呢?

**更新:**作为一个测试场景,我在部署在一台服务器上的应用程序前面放了一个ALB-运行良好-。但是当我在CloudFlare中将域更改为指向ALB URL时,我面临着同样的问题。因此,该问题与ALB有关。Amazon ALB或CloudFlare中是否有任何自定义配置来解决此问题?

jyztefdp

jyztefdp1#

Laravels决定是否请求是通过http或https在默认情况下的请求,如果它不能弄清楚它的任何其他方式。
您必须设置TrustProxies中间件,以使Laravel正确理解请求被转发。但你可能已经有了这个设置。
当你将应用程序拆分到多个域时,CORS问题是非常正常的,你应该考虑设置正确的HTTP头:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
还要注意的是,当使用HTTP缓存时,如果你不使用HTTP CACH VARY头,这些CORS头也会被缓存。

相关问题