[英]deploying yii2 project using application load balancer with aws ssl certificate
我正在 aws 上部署我的 yii2 項目,並使用帶有 aws ssl 證書的應用程序負載均衡器。 問題是,每當調用 $this->redirect(..) 時,url 都會更改為 http 而不是 https 並且瀏覽器會顯示“只能訪問此站點”(只能訪問此站點)。 我想強制所有重定向操作將 url 設置為 https。
更新
我將 url 管理器的 baseUrl 更改為https://mywebsite.com以解決此問題。 現在它只出現在用戶登錄和注銷時。 使用 goHome() 和 goBack() 動作的地方
當前解決方案的缺點是每個應用程序不能有多個域。 我們有一個非常相似的設置。 我們的負載均衡器正在終止 ssl,所有其他流量通過 http 在內部網絡中發送。
為了滿足您的需求,請確保將 header X-Forwarded-Proto
設置為https
並將請求組件配置為不刪除X-Forwarded-Proto
(通過secureHeaders
)或配置$trustedHosts
以便 header 過濾器根本不會刪除任何安全標頭。
例如:
'request' => [
'class' => 'yii\web\Request',
'enableCsrfValidation' => true,
'cookieValidationKey' => 'YOUR COOKIE KEY',
'csrfCookie' => [
'httpOnly' => true,
'secure' => true
],
'secureHeaders' => [
// Common:
'X-Forwarded-For',
'X-Forwarded-Host',
//secure headers are filtered out if they are sent from not trusted remote hosts.
//'X-Forwarded-Proto',
// Microsoft:
'Front-End-Https',
'X-Rewrite-Url',
]
],
之后getIsSecureConnection()
將正確返回 true,並且您的重定向 url 將生成為 https。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.