2
1

初めての AWS で Laravel API をデプロイしてみた! - 第 7 弾:SSL 化編

Posted at

1. はじめに

私は2023年10月より、内定直結型エンジニア学習プログラム「アプレンティス」に2期生として参加しています。

AWS について学んだので、Laravel API を AWS でデプロイする方法についてまとめました。
AWS に初めて触れる方の参考になれば幸いです。

シリーズ一覧

長編になっているので、複数の記事に分けて公開しています。
本記事はその第 7 弾です。

  1. サーバー設置編
  2. サーバー接続編
  3. IP アドレス編
  4. データベース編
  5. アプリケーション起動編
  6. Webレイヤ冗長化編
  7. SSL 化編 ★本記事!!

目次

1.はじめに
2.パブリック証明書のリクエスト
3.ALB に HTTPS リスナーの追加
4.セキュリティグループで HTTPS 通信を許可
5.HTTP 通信を HTTPS 通信にリダイレクト
6.最後に

2. パブリック証明書のリクエスト

ACM (AWS Certificate Manager) を利用して、SSL 化 (HTTPS 化) していきます。

サービス検索窓に「Certificate Manager」と入力し、ACM のダッシュボードに移動します。
「証明書をリクエスト」をクリックします。
スクリーンショット 2024-02-09 21.08.17.png

「パブリック証明書をリクエスト」を選択します。
スクリーンショット 2024-02-09 21.09.07.png

ドメイン名を入力します。
スクリーンショット 2024-02-09 21.14.58.png
この内容で「リクエスト」します。

証明書がリクエストされました。
ステータスは「保留中の検証」となっています。
スクリーンショット 2024-02-09 21.15.48.png

証明書 ID をクリックして、詳細画面に移り、「Route 53 でレコードを作成」をクリックします。
スクリーンショット 2024-02-10 2.26.32.png

スクリーンショット 2024-02-10 2.27.49.png
レコードが表示されるので、「レコードを作成」をクリックします。
証明書のステータスが「成功」となれば、パブリック証明書の発行が完了です。

3. ALBにHTTPSリスナーの追加

HTTPS 通信を受け入れるように、ALB にリスナーを追加します。
EC2 ダッシュボードの「ロードバランサー」から、作成したロードバランサーを選択します。

「リスナーとルール」タブから「リスナーの追加」に進みます。
スクリーンショット 2024-02-16 0.49.35.png

HTTPS, 443 番ポートを登録します。
「アクションのルーティング」は、作成したターゲットグループを選択します。
スクリーンショット 2024-02-16 0.51.24.png

証明書の取得先に「ACM から」を選択し、取得した証明書を選択します。
スクリーンショット 2024-02-16 0.53.11.png
「追加」をクリック。

追加されましたが、このままでは「到達不可能」となっています。
セキュリティグループで HTTPS 通信を許可していないためです。
スクリーンショット 2024-02-16 0.55.37.png

4. セキュリティグループでHTTPS通信を許可

「セキュリティ」タブに切り替えると、セキュリティグループが表示されるので、クリックして詳細画面に移動します。
スクリーンショット 2024-02-16 0.58.03.png

「インバウンドルール」の「インバウンドルールを編集」に進みます。
スクリーンショット 2024-02-16 0.59.11.png

「ルールを追加」をクリックし、HTTPS, 443 番ポートを登録します。
スクリーンショット 2024-02-16 1.00.39.png
「ルールを保存」をクリックします。
これで、HTTPS 通信できるようになります。

https でドメイン名にアクセスできました。
スクリーンショット 2024-02-16 1.02.37.png

5. HTTP通信をHTTPS通信にリダイレクト

HTTP 通信でアクセスがあった場合に、HTTPS 通信でリダイレクトするように設定します。

EC2 ダッシュボードから「ロードバランサー」を開き、作成した ALB を選択します。

現在、HTTP も HTTPS もターゲットグループにルーティングする設定になっています。
これを、HTTP の場合は HTTPS にリダイレクトするよう編集します。
「HTTP:80」をクリックして詳細画面に移行します。
スクリーンショット 2024-02-16 1.06.44.png

「リスナールール」の「ルールを追加する」に進みます。
スクリーンショット 2024-02-16 1.17.31.png

任意の名前を入力します。
スクリーンショット 2024-02-16 1.19.06.png

「条件の追加」をクリックし、以下のように登録します。
スクリーンショット 2024-02-16 1.12.47.png

「URL にリダイレクト」を選択します。
HTTPS, 443 番ポートを選択します。
スクリーンショット 2024-02-16 1.14.41.png

「優先度」は 1 としておきます。
スクリーンショット 2024-02-16 1.20.20.png
「次へ」、問題がなければ「作成」をクリックします。

作成できました。
スクリーンショット 2024-02-16 1.23.29.png

これで、httpとしてアクセスした場合、httpsにリダイレクトされるようになりました!

6. 最後に

ここまでで、Laravel API を AWS にデプロイし、冗長化や独自ドメインの SSL 化にも対応してきました。
画像付きで操作方法がわかりやすいように努めました。
なぜその項目を選択するのか等については、まだ勉強中なこともあり、深く掘り下げなかった部分も多くあります。
さらに学びを深めて行きたいとおもいます。
お読みいただきありがとうございました。

2
1
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
2
1