AWSで無料のSSL証明書を取得
内容
SSL証明書の取得
- AWSサービスの中から、Certificate Managerを選択
- 証明書のプロビジョニングの「今すぐ始める」をクリック
- パブリック証明書のリクエストを選んで「証明書のリクエスト」をクリック
- webサイトで利用予定のドメインを指定して「次へ」をクリック
- DNSの検証で「次へ」をクリック
- タグの作成は任意なので、不要であれば空欄のまま「確認」をクリック
- 内容に誤りがなければ「確定とリクエスト」をクリック
- ドメイン横の三角ボタンをクリックしプルダウンを表示
- ネームサーバーをRoute 53としている場合は、「Route 53でのレコードの作成」をクリックし、「作成」をクリック→成功と表示されればOK
- 「続行」で完了
SSL証明書をELBに設定
いくつか方法があるが今回はELBに設定する、その中でもALBを使用する
- AWSサービスの中から、EC2を選択
- 「ロードバランサー」→「ロードバランサーの作成」を選択
- Application Load Balancerを選択
- 任意の名前を入力
- VPCを選択し、アベイラビリティーゾーンでは2つ以上(1つはWebサーバーのあるゾーン)、サブネットを選択
- 新しいセキュリティグループを作成→セキュリティグループ名を設定し、ポートは80と443でどこからでもアクセス出来るように、0.0.0.0/0, ::/0 を許可する→作成したセキュリティグループを選択
- リスナーの追加でHTTPとHTTPSを選べるので、HTTPSを選択
- Create target group→インスタンスを選択、ターゲットグループに任意の名前を設定、バージョンはHTTP1で「Next」
※プロトコルはHTTP、ポートは80のデフォルト設定でOK→EC2インスタンスとELBはHTTP通信のため
- 「インスタンス」の項目で追加するwebサーバにチェックを入れ、「Include as pending below」をクリックすると、ターゲットにwebサーバのインスタンスが追加される→作成→作成したターゲットを選択
- Default SSL certificateで先程作成した証明書を選択
- 最後に設定が問題ないことを確認し「作成」
- ターゲットグループの一覧からターゲットを確認すると、LB作成前はunusedになっていたが、LB作成後はhealthyになり、アクセスできる状態になった
ロードバランサーとドメインを紐付ける
- Route 53でタイプAのレコードを選択して「レコードの編集」をクリック
- トラフィックのルーティング先でエイリアスをオン
- ALBとCLBへのエイリアス→リージョンを選択→先程作成したロードバランサーを選択→保存
EC2インスタンスのポートを設定
- EC2にはALBからのアクセスのみ許可する場合は、セキュリティグループのインバウンドルールを編集する
以上で「https://〜」のドメインでアクセスすると鍵がかかった状態になっている
証明書情報を見ると、Amazonが認証局になり有効期限が来年になっていることが確認できる