LoginSignup
0
0

More than 1 year has passed since last update.

ApplicationGatewayとLaravelの合わせ技で通信が困った話

Posted at

問題になったこと

AzureのApplicationGatewayを前段に置いて、後ろにLaravelのWebサーバーがある構成で、
何故かLaravelから生成されるURLが非SSLになって色々と困ったので備忘録

結論

原因

Laravelは特に指定がなければ、サーバー変数$_SERVERの値を使ってURLを生成する。
ApplicationGatewayより後ろを非暗号化httpで通信していたため、Laravel側はhttpのURLを生成していた模様。

解決方法

二種類ある

1. Apache側でサーバー変数を書き換える

ApacheのVirtaulhostに下記の設定を追加

SetEnv HTTPS on 

これで$_SERVER["HTTPS"]が強制的にONになるので、
Laravel側でもhttpsのURLが生成されるようになる

2. Laravel側でURL生成に使う値を強制的に変更する

下記の処理をAppServiceProvider.phpに加えることで強制的にURL生成に使い値を変更することが可能

Illuminate\Support\Facades\URL::forceRootUrl('url')
Illuminate\Support\Facades\URL::forceScheme('https')

詳細は下記コラムが参考になりました。
より詳しい処理の詳細は下記を確認していただければと。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0