0

我們在安裝了中間件的AWS(Elastic Beanstalk)上部署了Laravel 5.4應用程序,即:laravel-ssl-protocol(by resino),它將強制SSL 。我們已經將它包含在Kernel.php上302錯誤:SSL中的Laravel 5.4 AWS ELB負載平衡器

protected $middleware = [ 
    ... 
    \Riseno\SSLProtocol\SSLMiddleware::class,    
]; 

它可以在家園/本地機器上正常工作。但它不適用於服務器(AWS ELB)。我附上了實際的圖像或問題。 firefox and chrome too many redirect

任何想法如何解決這個問題將不勝感激。謝謝。

+0

在ELB後面,您必須對其進行配置,以檢查「x-forwarded-proto」HTTP標頭以確定連接是否安全。您使用的中間件說它只適用於CloudFlare靈活的SSL,所以我不確定它會在您的情況下運行。 –

+0

太棒了!感謝那些重要的信息,馬克B.我會在亞馬遜文檔上看看。這是一個很好的開始閱讀。 –

回答

0

我終於找到了我的問題的解決辦法,我想我需要在這裏分享它。所以如果有人遇到同樣的問題,這可能對他們有幫助。正如我在網上做了一些研究,我發現這篇文章:How to Configure Symfony to Work behind a Load Balancer or a Reverse Proxy。並沒有對當前的中間件,laravel的SSL協議(將Resino)一些小的變化如下:

public function handle($request, Closure $next) 
{ 
    $request->setTrustedProxies([$request->getClientIp()], Request::HEADER_X_FORWARDED_AWS_ELB); 

    if (!$request->secure() && env('APP_ENV') === 'production') { 
     return redirect()->secure($request->path()); 
    } 

    return $next($request); 
} 

,並上傳更新的代碼庫AWS和多田!有用。 302錯誤消失了。關鍵是「Request :: HEADER_X_FORWARDED_AWS_ELB」。