Halcyon Days

海のように穏やかに生きたい

Laravelアプリケーションを常時SSL化する

環境

Windows11

Laravel8

Apache2.4

やりたいこと

Apache上にデプロイしたLaravelアプリケーションにHTTPSでアクセスしたいのでその対応をしたい。

環境設定

config\app.phpenv を編集する

環境にあわせて下記のように変更します。

'env' => env('APP_ENV', 'production') // 開発環境は'local'にする

AppServiceProvider を編集する

接続が環境にあわせて変更するように if を使って制御します。

<?php
 
namespace App\Providers;
 
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\URL; // 追記

class AppServiceProvider extends ServiceProvider
{
    // 他のコード

    public function boot()
    {
        // ここから追記
        if (config('app.env') === 'production') {
            URL::forceScheme('https');
        }
        // ここまで追記
    }
}

config\app.php で編集した環境に応じて、HTTP接続かHTTPS接続かが決定されるようになりました。

参考サイト・資料