Php 使用具有aws ssl证书的应用程序负载平衡器部署Yi2项目
我正在aws上部署我的Yi2项目,并使用带有aws ssl证书的应用程序负载平衡器。问题是,每当调用$this->redirect(..)时,url都会更改为http而不是https,并且浏览器显示“无法访问此站点”(负载平衡器仅处理https)。我想强制所有重定向操作将url设置为https 更新Php 使用具有aws ssl证书的应用程序负载平衡器部署Yi2项目,php,amazon-web-services,yii2,yii2-advanced-app,aws-application-load-balancer,Php,Amazon Web Services,Yii2,Yii2 Advanced App,Aws Application Load Balancer,我正在aws上部署我的Yi2项目,并使用带有aws ssl证书的应用程序负载平衡器。问题是,每当调用$this->redirect(..)时,url都会更改为http而不是https,并且浏览器显示“无法访问此站点”(负载平衡器仅处理https)。我想强制所有重定向操作将url设置为https 更新 我为url管理器更改了baseUrl以解决此问题。现在它只出现在用户登录和注销时。在使用goHome()和goBack()操作的地方当前解决方案的缺点是,每个应用程序不能有多个域。 我们有一个非常相
我为url管理器更改了baseUrl以解决此问题。现在它只出现在用户登录和注销时。在使用goHome()和goBack()操作的地方当前解决方案的缺点是,每个应用程序不能有多个域。 我们有一个非常相似的设置。我们的loadbalancer正在终止ssl,所有其他流量通过http在内部网络中发送 为了满足您的需要,请确保标题
X-Forwarded-Proto
设置为https
并将请求组件配置为不删除X-Forwarded-Proto
(通过secureHeaders
)或配置$trustedHosts
,以便标头筛选器根本不会删除任何安全标头
例如:
“请求”=>[
'class'=>'yii\web\Request',
“enableCsrfValidation”=>true,
'cookieValidationKey'=>'YOUR COOKIE KEY',
“csrfCookie”=>[
“httpOnly”=>true,
“安全”=>true
],
'secureHeaders'=>[
//常见的:
“X-For”,
“X-Forwarded-Host”,
//如果安全标头是从不受信任的远程主机发送的,则会将其过滤掉。
//“X-Proto”,
//微软:
'前端Https',
“X-Rewrite-Url”,
]
],
之后,
getIsSecureConnection()
将正确返回true,重定向URL将生成为https。我猜负载平衡器正在尝试使用http而不是https访问web应用程序。这让我觉得它应该对URL使用http协议。您能否将负载平衡器设置为通过https访问应用程序?此答案应被接受!