AWSでWebサイトをHTTPS化 その2:EC2(+外部SSL証明書)編

Pocket

渡邊です。

AWSでWebサイトをHTTPS化 全パターンを整理してみました の記事ではAWSを使ってWebサイトをHTTPS化するパターンを一通り紹介しました。
今回はAWSを利用してHTTPS配信するパターンの1つ、
『EC2(+外部SSL証明書)』構成を検証してみます。

構成

構成図は次の通りです。

最もシンプルなパターンです。
SSL終端はEC2インスタンス上のWebサーバとなります。残念ながらACMで発行したSSL証明書はEC2には適用できません。外部CAで発行したSSL証明書が必要です。
証明書はApacheやnginxなどWebサーバに組み込みます。
ロードバランサを介さずにクライアントと直接HTTPS通信する必要があるケースなどで使われる構成です。

構築の流れ

今回の検証では、弊社ナレコムクラウドのWebサイト用のドメイン(kc-cloud.jp)にサブドメインを作成して
使用します。SSL証明書も既存の『*. kc-cloud.jp』の証明書を使用します。

次のような流れで構築を進めます。
まずはHTTP通信出来る構成を構築し、その後HTTPSの設定をしていきます。

[1] EC2インスタンス作成
[2] nginxインストール
[3] Route 53にサブドメイン作成
[4] HTTPS設定

EC2インスタンス作成

VPC、サブネット、ルートテーブル、インターネットゲートウェイを適宜作成の上、
HTTPサーバを稼働させるEC2インスタンスを作成します。
セキュリティグループ設定は、ここでは一旦SSHとHTTPを許可します。

インスタンス作成後、Elastic IPも割り当てておきます。

nginxインストール

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

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

ブラウザからHTTP通信が出来ることを確認します。

Route 53にサブドメイン作成

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


ブラウザからnginxサーバへ、作成したサブドメイン名でHTTPアクセス出来ることを確認します。

HTTPS設定

証明書を格納するディレクトリを作成します。

ここでは証明書ファイル名、鍵ファイル名をそれぞれ、『server.crt』『server.key』としました。
証明書ファイル・鍵ファイルを格納したら、rootユーザのみがアクセス出来るように、ファイルの所有者・所有グループ・アクセス権限を設定します。

nginxの設定ファイルを編集します。

下記のように設定します。

nginxを再起動させます。

EC2インスタンスのセキュリティグループで、HTTPの許可を削除し、HTTPSを許可します。

ブラウザからnginxサーバへ、HTTPS通信が出来ることを確認します。

おわりに

以上、AWSを利用してHTTPS配信するパターンの1つ、『EC2(+外部SSL証明書)』構成を検証しました。
Route 53やnginxの設定方法が簡単で、容易にHTTPS構成を構築出来た一方、まだまだ知らないことが多いとも感じました。もっと勉強していきたいと思います。

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

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

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

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

Webサイトのインフラの設計から構築、運用、監視までまるっとナレコムAWSクラウドのマネージドプランでサポートします。

詳しい話を聞いてみたい、自社サイトのSSL化を相談してみたい方はお電話かお問い合わせフォームからご連絡ください。