カスタムドメインを用いたHTTPS通信のための準備
Google Chromeの開発チームはMarking HTTP As Non-Secureという計画に基づき、WebのHTTPS化を推進しています。
これまでのWebサイトはHTTPでの接続が標準でした。しかし、近年多くのWebサイトで決済情報や個人情報を扱うようになった一方で、スマートフォンなどの普及により、より多くのユーザーがWebサイトにアクセスするようになっています。これらのユーザーの中には、HTTPとHTTPSの違いや、どのような状態であれば通信がセキュアであると言えるのかについて十分な知識を持っていない方もいます。
そのため、標準をHTTPSに切り替えていくことにより、十分な知識を持っていないユーザーでも安心してさまざまなWebサイトにアクセスできるようにしよう、という取り組みです。
この取り組みの一環として、Next Steps Toward More Connection Securityにおいて、Google Chrome バージョン62以降では、HTTPのWebサイトでユーザーが何かを入力する際に「安全ではありません」という警告が表示されるようになると述べられています。
今後WebサイトやWebアプリケーションを開発する際には、HTTPSへの対応は必須になる、と考えてもよいでしょう。
さて、AWSではAWS Certificate Managerを用いることで、HTTPS通信に必要なSSL証明書を無料で取得することができます。さらにその証明書を、AWSの各種サービスに統合された形で利用することが可能となっています。まずは、CloudFrontとAPI Gatewayの双方で利用可能なSSL証明書の作成を行います。
ACM(AWS Certificate Manager)を用いたSSL証明書の作成
今回はACMを利用して、カスタムドメインのSSL証明書を取得します。
AWSマネジメントコンソールから、[Certificate Manager]をクリックします。
CloudFrontとAPI Gatewayは、2017年8月現在「米国東部(バージニア北部)リージョン(us-east-1)」で作成された証明書のみ利用可能です。
そのため、画面右上のリージョン選択ボタンより「米国東部(バージニア北部)」を選択してください。
ACMの画面で、[今すぐ始める]をクリックします。もし、すでに作成した証明書がある場合は、[証明書のリクエスト]をクリックします。
[1]ドメイン名の追加
CloudFrontを用いた静的コンテンツではwww.example.com
、API Gatewayでは api.example.com
のサブドメインをそれぞれ利用するため、ワイルドカード証明書をリクエストします。
本稿では、以降example.com
というドメインを用いて説明を行いますが、適宜ご自身のドメインに置き換えて入力してください。
SSL証明書を取得するドメイン名「*.example.com
」を入力します。
入力が完了したら、[確認とリクエスト]をクリックします。
[2]確認とリクエスト
ドメイン名を確認し、[確定とリクエスト]をクリックします。
ACMから以下のアドレスに対して確認メールが送信されます。以下、いずれかのアドレスを受信可能なメーラーを開き、ACMからメールが届いているか確認してください。
- whois情報に登録されている「ドメインの登録者」「テクニカル担当者」「管理者の連絡先」
-
administrator@登録したドメイン
-
hostmaster@登録したドメイン
-
postmaster@登録したドメイン
-
webmaster@登録したドメイン
-
admin@登録したドメイン
[3]検証
確認メールに記載のリンクをブラウザで開き、[I Approve]をクリックします。
以上で、ドメイン所有者の確認と登録が完了します。
[4]証明書の確認
確認メールのリンクをクリックし、ドメイン所有者の確認と登録が完了した状態でACMの画面を更新すると、状況が[発行済み]に変化します。
[種類]の表示を見ると、Amazonが発行した証明書であることを確認することができます。
以上で、ワイルドカード証明書の発行は完了です。