簡體   English   中英

使用帶有 aws ssl 證書的應用程序負載均衡器部署 yii2 項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM