単にALBを有効するとどうなるか
CSSやJavascriptや画像などアセット類が読み込まれなくなり、ChromeのDevToolsのConsole上にmixed content: The Page at 'https://example.com/' was loaded over HTTPS, but reqested an insecure stylesheet(またはscript) 'http://example.com/example.css'(または'http://example.com/example.js'). This request has been blocked; the content must be served over HTTPS.ってのがゾロゾロ出てくるようになる。

たぶん、こちらの記事で触れている現象と同じことが起きているのかなって察しました:
HTTPS 通信のみ許可しているALB経由で、EC2上のWordPressにアクセスしたら、表示崩れした話。 - サーバーワークスエンジニアブログ
なぜなのか
インターネット側からALBまでのアクセスはHTTPSだけど、ALBからEC2上のwebサーバーに転送されるリクエストはHTTPSではなく HTTP だから、webサーバープログラムから呼ばれてphpで動くLaravelでは「HTTPでアクセスしてきているからアセット類はHTTPでアクセスするように応答すればいいや」と通常は判断してしまうらしく、アセット類へのアクセスがHTTPを使うように指示するレスポンスを返してしまうかららしい。
対策:TrustProxiesミドルウェアを組み込む
プロジェクトソース内、bootstrap/app.php にて、こんな風に:
<?php
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
use Illuminate\Http\Middleware\TrustProxies;
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
$middleware->web(append: [
TrustProxies::class, // 追加
]);
$middleware->trustProxies(at: '*'); // 追加
})
->withExceptions(function (Exceptions $exceptions) {
//
})->create();
参考:AWSでのMixed Contentエラー対策のためTrustProxiesミドルウェアを設定する
以上、ウケウリ情報でした!
Laravel 11環境にて確認しました。