前提
- EC2にデプロイ済みであること
- ドメインを取得しElastic IPと紐付けていること。つまり
http://ドメイン名
でサイトにアクセスできるようになっていること。
ドメインの取得方法は下記記事を参考にました!
そもそもSSL化ってなに?
簡単にいうと**「セキュリティが強い、安全なサイトにすること」**です。
詳しい説明は下記記事を参考にしてください。
方法
- Certificate ManagerでSSLサーバー証明書を発行
- ロードバランサーにてSSLサーバー証明書とEC2インスタンスを紐付ける
- EC2インスタンスのポート開放
- 動作確認
この順番で行きたいと思います。
まずはゴールを御覧ください。
最終形のイメージ
ポイントは2つ!
- 今回はサーバー証明書はCertificate Managerで取得して、ロードバランサー(ELB)に紐づける
- EC2とELBは__HTTP通信__。ELBとクライアントを__HTTPS通信__するよう設定する
では行ってみましょう!
1. Certificate ManagerでSSLサーバー証明書を発行
Certificate Manager
入力したドメイン名が出現します。
確認とリクエストをクリック
そうするとDNSの検証の準備が始まります。
状況が**「検証保留中」と出ているはずです。
ドメインの名の横の「 ▼ 」**をクリックすると名前、種類、値のレコードが出てきます。
この値をメモアプリに保存しましょう。
※DNS設定をファイルにエクスポートでも値は確認できます。
Route53
Route53に移ります。
指定したドメインのホストゾーンでレコードを作成をクリック。
エンドポイントを選択をクリック。
レコードタイプに応じたIPアドレスまたは別の値を選択
先程のメモをご用意ください。
レコード名に、**「名前」を
ルーティング先に、「値」をコピペ。
レコードタイプは「CNAME」**を選択し、シンプルなレコードを定義をクリック。
このようにタイプCNAMEのレコードができたら準備OKです。
Certificate Manager
再びCertificate Managerに戻り、以下のように**「発行済み」**になっていたらSSLサーバー証明書の発行が完了です。
ここまでよろしいでしょうか?
どんどん行きましょう!!
2. ロードバランサーにてSSLサーバー証明書とEC2インスタンスを紐付ける
ロードバランサー
ロードバランサーの作成をクリック。
※筆者は既にロードバランサーを1個作ってあるため、下に表示されています。
Application Load Balancerの作成をクリック。
任意の名前を記入し、
リスナーの追加でHTTPSを追加。
アベイラビリティーゾーンでは2つ以上、サブネットを選択します。
その後次の手順をクリック
ACMから証明書を選択をするを選択、
証明書の名前は先程作成した証明書を選択してください。
その後次の手順をクリック。
EC2インスタンスが使っているセキュリティーグループを選択し、
その後次の手順をクリック。
ターゲットグループに任意の名前を付けます。
プロトコルはHTTP、ポートは80のデフォルト設定でOKです。
EC2インスタンスとELBはHTTP通信のためです。
その後次の手順をクリック。
任意のEC2インスタンスを選択肢し登録します。
その後次の手順をクリック。
お疲れさまです!
後もう少しです!
Route53
Route53に戻り、先程作ったロードバランサーとドメインを紐付けます。
ルーティング先を先程作ったロードバランサーと紐付け、変更を保存をクリック。
3. EC2インスタンスのポート開放
EC2
以上で完了です!!!!
それではhttps://ドメイン名
で検索してみましょう!
4. 動作確認
まとめ
ドメイン取得紐付け後の、ドメインのSSL化を解説しました。
自分はEC2とALBの間をHTTPS通信しようとして、かなりハマりました。
皆さんにはそうなって欲しくないためココに記しました。
私自身もプログラミング初心者のため間違っていることが、ありましたらご指摘ください。
最後まで読んでいただき、ありがとうございました!