AWSでWebサイトをHTTPS化 その1:ELB(+ACM発行証明書)→EC2編

今回の検証では、弊社ナレコムクラウドのWebサイト用のドメイン(kc-cloud.jp)にサブドメインを作成して

使用します。

次のような流れで構築を進めます。

[1] Route 53にサブドメイン作成

[2] ACM証明書設定

[2.1] ACMからの証明書発行

[3] EC2インスタンス作成

[4] ELB作成

[5] 動作確認

Route 53にサブドメイン作成

Route 53でkc-cloud.jpのサブドメインを作成します。

ドメインkc-cloud.jpは、今回の構築で使用するAWSアカウント(以下、構築アカウント)とは別のAWSアカウント(以下、ドメイン管理アカウント)で管理されています。

まずは構築アカウントで『Route 53』を選択します。

『DNS management』を選択します。

『Create Hosted Zone』ボタンを押下します。

もう一度ボタンを押下します。

サブドメイン名を入力します。

NSレコードセットとSOAレコードセットが作成されます。

ドメイン管理アカウントで、Hosted Zone『kc-cloud.jp』にサブドメインのNSレコードセットを作成します。Valueには、構築アカウントで作成したNSレコードセットのValueをコピー&ペーストします。

ACM証明書設定

ACMで証明書を利用する場合、以下の2つのやり方があります。

・シマンテックなど外部CAの発行したサーバ証明書をACMにインポートする

・ACMで無料の証明書を発行する

今回はACMで無料の証明書を発行する手順で構築します。

ACMからの証明書発行

サービスとして『Certificate Manager』を選択します。

『証明書のリクエスト』ボタンを押下します。

サブドメイン名を入力します。入力すると、『次へ』ボタンがアクティブになるので押下します。

右下の青いボタンを押下します。

『確定とリクエスト』ボタンを押下します。

サブドメイン名の左の黒い三角形のマークをクリックします。

『Route 53でのレコードの作成』ボタンを押下します。

『作成』ボタンを押下します。

『続行』ボタンを押下します。

『検証保留中』のまま、しばらく待ちます。右上の更新ボタンで最新の状況に表示を更新出来ます。

状況が『発行済み』になったら証明書発行完了です。

Route 53で先程追加したCNAMEレコードを確認出来ます。

EC2インスタンス作成

VPC、サブネット、ルートテーブル、インターネットゲートウェイを適宜作成の上、

HTTPサーバを稼働させるEC2インスタンスを作成します。

ELBを作成する上で、サブネットは2つ以上必要なので、サブネットを2つ作成します。

セキュリティグループ設定は、ここでは一旦SSHを許可します。

EC2インスタンスにnginxをインストールします。

1$ sudo yum install nginx2$ nginx -v3nginx version: nginx/1.12.1

nginxを起動させ、自動起動設定もしておきます。

1$ sudo service nginx start2$ sudo chkconfig nginx on

ELB作成

ELBを作成します。

ELBの種類を選択します。ここでは『Application Load Balancer(ALB)』を選択します。

ELBの名前を入力します。

『ロードバランサーのプロトコル』を『HTTP』から『HTTPS』へ変更します。

プロトコルを変更すると、ポート番号は自動で『80』から『443』に切り替わります。

2つ以上のサブネットを選択します。

『証明書タイプ』は『ACM から証明書を選択する (推奨)』とし、

『証明書の名前』で『ACMで発行した証明書』を選択します。

HTTPSを許可します。

ターゲットグループの名前を入力します。

ターゲットに作成したEC2インスタンスを登録します。

内容を確認の上、『作成』ボタンを押下します。

『閉じる』ボタンを押下します。

EC2インスタンスのセキュリティグループに、HTTPを許可するルールを追加します。ソースには作成したELBのセキュリティグループを指定します。

構築アカウントのRoute 53で、サブドメインのレコードセットを下図のように追加する。『Alias Target』には作成したELBを指定する。

構築アカウントのRoute 53で、サブドメインのレコードセットを下図のように追加する。『Alias Target』には作成したELBを指定する。

動作確認

ブラウザから、作成したサブドメインに対して、HTTPSでアクセスして動作を確認します。

参考リンク

下記の記事を参考にさせて頂きました。ありがとうございます。

別のAWSアカウントにDNS権限移譲を行う方法

https://qiita.com/inak-skywalker/items/6f35312a70eafcad8c14

おわりに

以上、AWSを利用してHTTPS配信するパターンの1つ、『ELB(+ACM発行証明書)→EC2』の構成を検証しました。

実際に自分の手を動かして構築することで、SSL/TLSやRoute 53に対する理解が深まりました。

最後までお読み頂きありがとうございました。

**-----

最後にこのブログを運営するナレッジコミュニケーションの宣伝です。**

AWSを使えばWebサイトのHTTPS化は簡単にできますが、今回紹介したケースのうちどれが最適かはケースバイケースです。

自社でAWS上で運営しているサイトを7月までにHTTPS対応させたいけどどの方式が最適なのか迷っている、もしくはこの機会に自社サーバで運営しているWebサイトをクラウド化したい、等お困りのことがありましたらナレコムがお手伝いします。

Webサイトのインフラの設計から構築、運用、監視までまるっと[ナレコムAWSクラウドのマネージドプラン](https://kc-cloud.jp/service02.html)でサポートします。

詳しい話を聞いてみたい、自社サイトのSSL化を相談してみたい方はお電話か[お問い合わせフォーム](http://kc-cloud.jp/contact.html)からご連絡ください。

【12月4日(金)15:00~】【AWS AI/MLオンラインセミナー】ABEJA様/ブレインズテクノロジー様/dotData Japan様との共同登壇!視聴無料!まだ申し込み可能です。

[申し込みはこちら](https://www.knowledgecommunication.jp/news/219.html)

この記事を書いた人

aws-recipe-user