お名前.comでドメインを取得し、AWSでSSL証明書を発行、AWSの既存ELBで使用する方法
前提
- サーバーは顧客Aが利用しているステージング環境を利用する
- 「HTTPS:443ポート」からのトラフィックを受けるELBが既にある(SSL登録済)
- ない場合は【補足1】に新規作成するパターンを記載しています
- 参考記事:お名前.com管理のドメインをAWSのALBで使用する
実施内容
- お名前.com:ドメイン取得
- AWS(ACM):SSL証明書取得
- お名前.com:DNSレコード設定
- AWS(ELB):既存ELBへのSSL追加
設定手順
1. ドメイン取得手順
- お名前.comでドメイン取得
- レンタルサーバーとのパックになっている契約もあります。今回は前提で記載したように顧客Aのサーバーを利用するので、ドメインのみの取得になりますが、サーバーも一緒に契約する場合は「ドメインとレンタルサーバーを用意する」をよく読んでから契約されてください。
2. SSL証明書取得手順
- 顧客AのAWSアカウントにログインし、AWS Certificate Manager(ACM)にアクセス
- 「パブリック証明書のリクエスト」を選択し、「次へ」をクリック
- ドメイン名に証明書を適用するドメイン名を入力、検証方法は「DNS 検証 - 推奨」を選択し、「リクエスト」をクリック
- 「ステータス」が「検証保留中」になることを確認する
3. DNSレコード設定手順
- AWS→EC2→ロードバランサー→対象のELBを選択し、DNSネームをコピーしておく
- お名前.comで「ドメインのDNS設定」→「DNSレコード設定」→「●入力」の下の以下項目を記入する
- ホスト名:ドメイン名を入力
- TYPE:CNAME を選択(先に選ばないとホスト名が消えるので、これを先に選択するのが良い)
- TTL:3600
- VALUE:ELBでコピーしたDNSネームを貼り付ける。
- AWS→ACMにアクセス→ステータスが「発行済み」になるまで待機・更新されたを確認する(すぐ反映されると思います。15分以内には終わるらしい)
4. 既存ELBへのSSL追加手順
- AWS→EC2ダッシュボード→ロードバランサーを開いて対象のELBを選択し、リスナータブを開く
- 「HTTPS:443 listener」で新規タブを開き、「Certifiate(証明書)」タブをクリック
- 「Add certificate」→該当の証明書を選択して「Import certificate」で追加完了
- ACM または IAM が管理していない証明書がある場合は、その証明書を ACM にインポートする必要がある。詳細は 公式ドキュメント 参照
補足1:ELBを新規作成する場合(DNSレコード設定時に紐づけるELBがない場合)
- SSL証明書取得時に「DNS 設定をファイルにエクスポート」からCSVファイルを出力しておき、DNSレコード設定でホスト名とVALUEにCSVの情報を入力してあげればOKです。ELBが作成できたら、DNSレコード設定でCNAMEにDNSネームを貼り付けます。
- 新規作成したELBにSSL設定をしてあげる必要があります。上記は「追加」の場合の手順だったので、「設定」する場合は以下手順を参照してください。
- 公式ドキュメント から引用↓
[リスナーの追加] を選択します。
[プロトコル] には、[HTTPS] を選択します。
[ポート] には 443 を選択してください。
[デフォルトアクション] で、[転送先] を選択し、ドロップダウンリストから ALB ターゲットグループを選択します。
デフォルト SSL 証明書で、[ACM から (推奨)] を選択してから ACM 証明書を選択します。
[保存] を選択します。
補足2:お名前.comでサブドメインを取得し、AWSの既存ELBで使用する方法
- 親ドメインはお名前ドットコムで取得済・ACMでSSL証明書も発行済でELBに紐づいている場合は、作業がだいぶ楽です。
- EC2→Load balancers→対象のELBを選択→DNSネームをコピーしておく
- お名前.com Naviにアクセス→ドメインのDNS設定→親ドメインを選択して「次へ」をクリック
- DNSレコード設定をクリック→「●入力」のホスト名・TYPE・TTL・VALUEにそれぞれ以下を記入
- ホスト名:希望のサブドメイン名
- TYPE:CNAME を選択(先に選ばないとホスト名が消えるので、これを先に選択するのが良い)
- TTL:3600
- VALUE:上記で取得したELBのDNSネームを貼り付ける
- 項目入力が終わったら「追加」→「確認画面へ進む」→「設定する」で完了