Rails~https化~AWS+EC2+Certificate Manager+お名前ドットコム
大変久しぶりの投稿にはなりますが、
今回スクールで作った自作ポートフォリオをhttps化しました。
色々と記事を参考にしすぎたことから、整理がついていなかったので、
ブログにまとめて、記録したいと思います。
今回、特に参考にさせていただいた記事は以下の2つになります。
AWS×お名前.comで作成したサイトをSSL化【具体例あり】
AWSでWebサイトをHTTPS化 その1:ELB(+ACM発行証明書)→EC2編 | ナレコムAWSレシピ
事前準備
・AWSでEC2インスタンスを作成済み(これについても後ほど記事にまとめたいと思います)
・ドメイン取得済み(今回はお名前ドットコムです)
・EIPを紐づけている(必須ではありません)
1.ネームサーバーの変更とSSL証明書の取得
まず初めに(順番前後しても問題はないのですが)、僕はお名前ドットコムのページからネームサーバー名の変更を行いました。
手順としては、
1. Root53にてHostedZone作成(サブドメイン作成)
2. お名前ドットコムの管理者ページからネームサーバーの変更を行う
上記の2点になります。
では初めに、AWSのトップページからroute53を選択し(サービスをクリックすれば確認できるはず)、ダッシュボードの【ホストゾーン】を選択したうえで、
ホストゾーンの作成を選択します。
次に、お名前ドットコムで作成したドメイン名を入力し、【作成】を選択します。
なお、タイプは変更せず「パブリックホストゾーン」のまま、コメントは未記入のままでも特に問題はなかったです。
次に作成したホストゾーンのネームサーバーを、
後ほどお名前ドットコムのネットサーバ変更のためコピーします。
続いて、お名前ドットコムのネームサーバーを変更する前に、
SSL証明書を取得します。
今回はCertificate Managerにて証明書を発行します。
サービスから「Certificate Manager」を選択してください。
開いたページより、証明書のリクエストをクリックします。
次のページでも同じく証明書のリクエストをクリックしてください。
ここでは、お名前ドットコムで作成したドメイン名を入力します。
必須ではないようですが、
「この証明書に別の名前を追加」を押して、「*.ドメイン名」とすることで、
ワイルドカード証明書を作成できます。
必要事項を記入したら【次へ】をクリックします。
次に出てくるページでは【DNSの検証】をボタンクリックした状態で、
確定を押してください。
入力した内容が確認できるので、問題なければ【確定とリクエスト】を押してください。
次に【続行】をクリックした後、、、
表示されるドメイン名をクリックします。
(その際、ワイルドカード証明書分ではなく、ドメイン名のみのものです)
ドメイン名をクリックすることで表示される
「値」をコピーしてください。
※この値もお名前ドットコムのページで利用することになります。
※文字列は隠しています
次にAWSのページからお名前ドットコムの設定です。
ユーザーページにログイン出来たら、
ドメイン設定をクリックしたのち、
ネームサーバーの変更ページへ移動します。
続いて、ドメイン名のチェックボタンをクリックし、
初めにコピーしておいた、ネームサーバーをそれぞれ記入してください。
※記入の順番については参考にさせていただいた記事の順番にしております。
次にCNAME設定をお名前.comに設定します。
再度ドメイン設定のページに移り、次はDNS設定をクリックしてください。
続いて対象のドメイン名を選択して【次へ】をクリックしてください。
「DNSレコード設定を利用する」の【設定する】を押しましょう。
画面中段にある「A/AAAA/CNAME/MX/NS/TXT/SRV/DS/CAAレコード」を以下のように入力して、「追加」を押しましょう。
「VALUE」には、前述でコピーした「値」を貼り付けてください。
※僕は「ホスト名」に、【値】をコピーした際に一緒にあった【名前】を記載しましたが、
必ずしも必要というわけではなさそうです。
参考にさせていただいた方は、wwwをつけてたので、ワイルドカード証明書も発行していたら違うのかもしれません。
同ページのチェックも忘れずにしておく
これでお名前ドットコムでの作業は終了です。
発行が完了しているかどうかの判断ですが、
AWSのCertificate Managerより
証明書が【発行済み】となっていれば問題ありません。
※発行済みに代わるまで時間がかかる場合もあるようです。
2.ロードバランサーの設定
EC2ページの左側のナビバーの【ロードバランサー】といった表記があるので、
それをクリックすると以下のページに遷移します。
そこで「ロードバランサーの作成」を選択してください。
次のページでは一番左側の作成を選択してください。
次に名前を記入します。
特に名前の指定はないようです。
僕はドメイン名を記入しました。
ページ中部にある、リスナーの追加をクリックした後、
HTTPSを設定します。
※ここで間違えて、追加するんじゃなくHTTPをHTTPSに変えただけにしてしまっても、後から追加できるので大丈夫でした。
続いてページ下部にある、アベイラビリティーゾーンで、チェックボックスを上から2つ選択して、「次の手順:セキュリティ設定の構成」を押しましょう。
先ほど作成しておいた、SSL証明書が選択されているのを確認し、
「次の手順:セキュリティ設定の構成」をクリックします。
「新しいセキュリティグループを作成する」を選んで、「HTTP」「HTTPS」のタイプを選んで、「次の手順:ルーティングの設定」を押してください。
ここでも名前を付けるのですが、これも特に指定はありません。
なので今回もドメイン名を僕は記入しました。
次に、事前に作成したインスタンスをチェックし、登録済みに追加をクリックします。
すると登録済みターゲットに、先ほど選択したインスタンスが追加されるので、
追加されたインスタンスをチェックし、「次の手順:確認」をクリックします。
これまで設定した内容が反映されています。
特に問題なければ作成を押してください。
ロードバランサーに作成した内容が反映されているはずです。
3.Route53の設定
長くなりましたが最後の設定です!!
AWSのサービスから【Route53】を検索し選択してください。
そうすると以下のページに飛ぶと思うので、ホストゾーンをクリックします。
次のページでは作成したドメイン名をクリックしてください。
画面が切り替わったかと思います。
そこで、【レコードセットの作成】を押すと、右側にナビバーが表示されるので、【エイリアス】を【はい】に変更し、
エイリアス先を先ほど作成したロードバランサーとして選択し、作成をクリックします。
これで手続きとしては完了です!!!
単純な理解にはなりますが、ドメイン名で検索したらhttpsにリダイレクトされる。
といった認識でいます。が、更に知識を得る必要がある内奥だと思いました、、、。
分からないまま使うの怖い、、、。
実際反映まで最大72時間ほどかかるみたいなので、ご注意ください。
(僕は2時間ほどで反映されたので個人差はありそうです)