【AWS】(自分的には一番楽な)WEBサイトSSL化手順のメモ
AWSで運用しているWEBサイトをSSL化する手順のメモです。何回やっているのですが、1ヶ月やらないだけで忘れちゃうんですよね汗 メモ程度ではありますが、以下のような環境から、SSL対応にするまでを書いていきます。
例として
http://www.hatehateb1234-hateb.com
を
https://www.hatebhateb1234-hateb.com
に強制的に変更する手順を記載します
作業前確認
ec2
web-serverは、public DNS: ec2-52-45-56-5.compute-1.amazonaws.com のインスタンスです
route53
上記のインスタンスは、route 53上では、以下のようにCNAME設定されています。単純に、port 80でダイレクトにWEBサーバにアクセスしている状況です
現在の設定はこれだけです。ec2に設定しているWEBサーバの設定は、今回のSSL化で変更する必要がないので割愛します
SSL化設定手順
ELB(ALB)の作成
どうしてSSLを対応させる為に、ロードバランサーの設定をしなくてはいけないの?という部分ですが。SSL証明書を利用するにあたって、ELBを経由するとなんと、無料なことと、既存で稼働しているWEB-SERVERの設定を一切変えることなく変更できるからです!通常SSLを設定する時って、証明書をWEB-SERVERにインストールする。。とか、port 443のconfigを弄るとか必要ですよね。ELBを経由するとそれが一切必要ありません(たぶん)
ELBの作成
- 「ロードバランサーの作成」ボタンをクリックします
- ロードバランサーの種類の選択画面にて、「Application Load Balancer」を選択します
- 名前、および、アベイラビリティーゾーンの選択をします。
名前は識別したい任意の名前を入力してください。この部分の設定は、おのおのの環境で異なります。 今回の例では、elb-www-hatebhateb1234-hateb という名前で登録します
上記画面から、「リスナーの追加」ボタンをクリックします
- リスナーが一行増えますので、ここで httpsを選択します
- 上記、全ての設定が終わりましたら、「セキュリティ設定の構成」ボタンをクリックします
- セキュリティ設定の構成
以下のような画面が出ると思います。この中から、「ACM から新しい証明書をリクエスト」をクリックしてください。今回は一気通貫で説明していきますが、本来であれば、ACM から新しい証明書を作成してから。。の方がいいかもしれません
- 証明書のリクエスト
上記にて、「ACM から新しい証明書をリクエスト」リンクをクリックすると、下記のような新しいウィンドウが開いたかと思います。 今回は、ワイルドカード証明書で作成したいと思いますので、以下のような設定にしました
hatebhateb1234-hateb.com と
*.hatebhateb1234-hateb.com
です。
入力し終わりましたら、次へボタンをクリックしてください
- 検証方法の選択
そのドメインが正当性のあるものか(ドメインの所有者か?)のチェック方法を選択します。これ、DNS の検証が圧倒的に便利です。今回はroute 53にドメインを保有しているので、DNS の検証を選択します
- タグを追加
cert-hatebhateb1234-hateb.comとNameタグで入力しました。証明書をわかりやすくするための値なので、内容は、任意で大丈夫です
「確認」ボタンをクリックします
- 確認画面
内容に間違えがなければ、「確定とリクエスト」ボタンをクリックしてください
- 証明書のリクエスト
以下のような画面になったかと思います。▶︎ ボタンをクリックして詳細を展開します
本来であれば、このレコードをCNAMEに登録というボタンが出てきますが、これは出てきません。理由は、そんなドメインを保有していないからです汗 ごめんなさい
本来でありますと、このCNAMEをroute53に登録というボタンが表示され、証明書が発行されます(汗)
- 手順 2: セキュリティ設定の構成
証明書の登録が完了しましたら、再び、手順 2: セキュリティ設定の構成に戻り、上記にて設定した証明書を選択します
選択が終わりましたら、「次の手順: セキュリティグループの設定」ボタンをクリックしてください
- 手順 3: セキュリティグループの設定
port 443は通すセキュリティグループを選択、もしくは作成してください。セキュリティグループの設定は、今回のSSL化とは関係がないので説明を割愛します
- 手順 4: ルーティングの設定
ここで、対象のインスタンスを選択する画面です。本来ロードバランサーなので、複数のインスタンスを追加する為に、そのグループ名を設定しますが、今回は、1インスタンスのみSSL化を目的に設定するものです。
簡単にいうと、上記の例の通り、DNS: ec2-52-45-56-5.compute-1.amazonaws.com のインスタンスをターゲットグループに含める作業です。グループの名前は、tgt-hatebとしました。(名前はなんでもかまいません)
入力が終わりましたら、「ターゲットの登録」ボタンをクリックします
- 手順 5: ターゲットの登録
以下のような画面になります。登録済みターゲットには何も入っておりません。インスタンスにはec2に登録されている一覧が表示されているかと思います。
- 手順 5: ターゲットの登録(インスタンスの選択)
以下の手順でターゲットのインスタンスを登録します。意外とここ間違えがちなので、下記画面の順番通り選択します
上記にて「登録済みに追加」ボタンをクリックすると、登録済みターゲットに対象のターゲットインスタンスが表示されます。内容に間違えがなければ、「次の手順:確認」ボタンをクリックします
- 手順 6: 確認
内容に間違いがないことをチェックして、「作成」ボタンをクリックします
- 完了画面
以上で証明書とELBの設定は終わりました。「閉じる」ボタンをクリックしてください
- ロードバランサー画面
さきほど作成した、ロードバランサーを一覧からチェックを入れますと、詳細画面が出てきます。 この中から、DNS名をコピーしておいてください、このDNS名は、route53の設定にて必要になります
再びroute 53の設定
- 既存のCNAMEレコードを削除
今までのインスタンス直紐付けのCNAMEレコードは削除します
- 新規でAレコードを作成
先ほどコピーしたDNS名を利用します
route53でAレコードを追加します
- 名前: wwwを追加
- タイプ: A: IPv4 アドレスを選択
- エイリアス: はいを選択
- エイリアス先: elb-www-hatebhateb1234-hateb-106477427.us-east-1.elb.amazonaws.com (さきほど、ロードバランサー名でコピーしたDNS名です)
「作成」ボタンをクリックします
新しく、ELBに紐づいた、DNS Aレコードが作成できたかと思います
以上で、SSL化の作業は全て完了です。数分待った後、ブラウザから、
https://www.hatebhateb1234-hateb.com
でアクセスしてみてください。無事SSL化が完了していることが確認できたかと思います (^_-☆)
でわでわー