▽概要
・既にS3でインターネット公開しているバケットがhttp通信になっている
・サーバ証明書を用意してhttps通信にしたい
・サーバ証明書はAWS Certificate Managerで用意したい
▽内容
①ACMで証明書リクエストを発行する
マネジメントコンソール>Certificate Manager>証明書をリクエスト
「パブリック証明書をリクエスト」を選択し、「次へ」を押下
・完全修飾ドメイン名:○○.co.jp
・検証方法:(今回は)DNS検証
※メールアドレス認証でもOKだけどDNS認証にすれば自動更新になる(便利)
・キーアルゴリズム:RSA 2048
・タグ:何かつけたければ、つける
メールアドレス認証は、
検証ドメインとして example.com を指定すると、admin@example.com に E メールが届きます www.example.com のACM証明書をリクエストすると、E メールは admin@example.com ではなく admin@www.example.com に送信されます。
同様に、*.test.example.com のACM証明書をリクエストすると、admin@test.example.com に E メールが送信されます。
設定した値に問題なければ「リクエスト」を押下する
②DNSサーバにCNAME登録する
マネジメントコンソール>Certificate Manager>証明書をリクエスト
の一覧でCNAMEレコードが表示されているので、
Route53でも他のDNSサーバでもご自身が使用しているもので登録を行う
③CloudFrontでディストリビューションを作成する
・OriginDomain:S3を指定する
・名前:S3を指定する
あたりを指定して「作成」します
④CloudFrontにHTTPS通信用の設定とHTTPSへのリダイレクト設定を追加する
該当のディストリビューションを選択し、「一般」タブから下記の設定を追加する
・Custom SSL certificate - optional:ACMの証明書を指定する
・Security policy:TLSv1.2_2021
「ビヘイビア」のタブから下記の設定を追加する
・ビューアープロトコルポリシー:Redirect HTTP to HTTPS
↑
必要最低限の設定のみを記載しておりますので、
その他(ログ設定や細かい設定)が必要でしたら、必要に応じて設定してください。
⑤ブラウザとかでHTTPSの通信になっているか確認する
ブラウザで対象のFQDNに( https://○○.co.jp みたいな感じで)アクセスしてHTTPSアクセスできるか確認する。
▽やってみた感想
S3バケットをHTTPS化させるのには、今のところCloudFrontを利用する方法が主流のようでしたので、
今回CloudFrontを用意してみました。
いろいろ調べて、必要な設定を調べてみて構築してみましたが、
AWSの設定って、一つずつ役割を調べるとなかなか時間かかるんですね。。
勉強になりました。。
今後違うリソースとか触ってみたいです。