#前提
- 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
EC2インスタンスのポートを下記のように開放します。
以上で完了です!!!!
それではhttps://ドメイン名
で検索してみましょう!
4. 動作確認
#まとめ
ドメイン取得紐付け後の、ドメインのSSL化を解説しました。
自分はEC2とALBの間をHTTPS通信しようとして、かなりハマりました。
皆さんにはそうなって欲しくないためココに記しました。
私自身もプログラミング初心者のため間違っていることが、ありましたらご指摘ください。
最後まで読んでいただき、ありがとうございました!