環境
# EC2 OS
$ cat /etc/system-release
Amazon Linux release 2023.4.20240429 (Amazon Linux)
# Laravel
$ php artisan --version
Laravel Framework 11.4.0
手順
ALB の TLS 化には SSL/TLS 証明書が必要なので、Route53 でドメインを取得し、Cirtificate Manager で証明書をリクエストする。
次にポート 443 のリスナーで ALB を作成する。
最後に Laravel の環境変数、コードに修正を加える。
1. ドメインを取得する
Route53 で取得
2. SSL/TLS 証明書をリクエストする
リクエスト後の証明書
3. ALB を作成する
リスナールール
ターゲットグループ
4. DNS レコードを作成する
A レコードで ALB を指定
5. .env を編集する
ASSET_URL=[https://レコード名]
を追記
.env
- APP_URL=http://57.180.9.245/ # EC2 の IP アドレス
+ # APP_URL=http://57.180.9.245/ # EC2 の IP アドレス
+ ASSET_URL=https://test.learnersaws.com/
6. コードを編集する
Chrome で以下のメッセージが表示された。
以下を記載して解消
AppServiceProvider.php
<?php
namespace App\Providers;
+ use Illuminate\Support\Facades\URL;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
- //
+ URL::forceScheme('https');
}
}
参考