2021/03/25

AWS ELB/ALBとACMを使用したHTTPS化|操作手順を解説

 
  

WebサイトのHTTPS化とは

ウェブサイトにアクセスするとき、ブラウザにはURLが表示されています。 そのURLの先頭はサイトによって「http://」「https://」という2つのパターンが存在しています。 先頭の文字列が「https」となっていればそのサイトはHTTPS化されているという事になります。

HTTPSとは

HTTPは「Hyper Text Transfer Protocol」の略です。 HTTPSはそれに「Secure」が追加されセキュリティを高めたプロトコルです。 どちらもウェブページを表示するためのプロトコルですが、HTTPSはページが暗号化されており、改ざんや第三者から通信内容を覗き見されないような仕組になっています。

なぜHTTPS化するのか

一昔前までは通常のページはHTTP(非SSL)で作成し、個人情報やカード番号などの重要情報を入力するページのみHTTPS(SSL)で作成するのが主流でした。 近年はサイト全体をHTTPS化する、いわゆる常時SSL化が主流となってきています。

サイト全体をHTTPS化する理由

インターネットの利用が一般化し便利になった一方、ページの改ざんや入力内容の盗聴といった被害も増加しています。スマートフォンの普及もサイバー犯罪増加に拍車をかけています。 ユーザーを守るためにすべてのページを暗号化する事が好ましいというのが最近の主流の考え方です。

常時HTTPS化したほうがいい理由は他にもある

HTTPS化はシステム側の都合だけではなくビジネスに直結する課題なのです。 Googleは検索結果に表示される順位を決める際、常時SSL化されているかどうかもスコアとして判定します。そのため、SEOにも大きな影響を与えます。 有力ブラウザのGoogle Chromeでは、2018年頃からHTTPSに対応していないサイトを訪れた場合には警告が表示されるようになりました。 ECサイトであれば、サイトを訪れたユーザーの購買意欲にも大きな影響を与えるであろうことは容易に想像できます。

AWS上に構築されたサイトのHTTPS化手順

構成によって様々なHTTPS化の方法が考えられます。 おすすめはAWSのELB/ALBとACMを使用した方法です。 HTTPSに関する処理はすべてロードバランサー側で対応するためEC2サーバー側の変更が最小限で済みます。 SSL証明書の費用が無料、更に一度設定すれば面倒なSSL証明書更新作業も不要になるというメリットもあります。 今回はEC2上のApacheで動作しているシンプルなサイトをHTTPS化する手順を紹介します。

前提条件

シンプルに考えるため、以下のような構成のサイトを想定しています。 ・EC2インスタンス上でAmazonLinuxが稼働しているサーバー ・Apacheが動作している ・静的HTMLのページにhttp://www.hogehoge.jp/のURLでアクセスできる

AWS ACMでSSL証明書の発行

HTTPS化にあたり、SSL証明書を発行する必要があります。 一般的なSSL証明書は業者からの購入となり、有料の上に発行まで手間のかかるものが多いのですが、AWSのACMを利用すれば無料で発行できます。 AWS ManagimentConsoleからメニューの「セキュリティ、ID、およびコンプライアンス」内にある「Certificate Manager」を開きます。 「証明書のリクエスト」をクリックし「パブリック証明書のリクエスト」を選択して先に進みます。 ドメイン名はここでは一例として「www.hogehoge.jp」を入力しました。 ちなみに、ワイルドカードを使用して「 *.hogehoge.jp」という入力も可能です。 複数のサーバーを運用する予定があるならこちらのほうが便利です。 「DNSの検証」または「Eメールの検証」どちらかを選択します。 これは証明書を発行しようとしているドメインの正当な所有者であることを確認するための方法です。 DNS検証を選択した場合は指定されたレコードをDNSに追加する作業が必要になります。 DNSサービスにAWS Route53を使用している場合はこちらがおすすめです。 Eメール認証はAWSから送信されてきた認証メール内のリンクをクリックする方式です。 この場合メールが届くのはAWSへのログインに使っているメールアドレスではなく、ドメイン管理者として登録されているメールアドレスという点に注意してください。 これらの検証が正常に完了すると、CertificateManagerの一覧に「発行済み」が表示されます。

ロードバランサー(ALB)を作成する

EC2サーバーにかわってHTTPSアクセスを代行するロードバランサーを作成します。 EC2ダッシュボードに移動しメニューから「ロードバランサー」→「ロードバランサーの作成」に進みます。 ロードバランサーの種類は「Application Load Balancer」 ロードバランサー名は例として「hogehoge-alb」 スキームは「インターネット向け」 IPアドレスタイプは「IPV4」を選択しましょう。 ロードバランサープロトコルは「HTTPS(セキュアHTTP)」を選択し、VPCは接続したいEC2が所属するものを選択します。 証明書タイプで「ACMから証明書を選択する(推奨)」を選び、「証明書の名前」の欄は先程作成した証明書を選択してください。 セキュリティポリシーには初期値としてその時点での最新の物が選択されています。そのままでよいでしょう。 セキュリティグループは「新しいセキュリティグループを作成」を選択します。 「タイプ」に「HTTPS」 「ソース」は「0.0.0.0/0」とし、HTTPS接続はすべて受け入れる設定とします。 ターゲットの登録ではALBと接続する対象のEC2インスタンスを選択すればロードバランサーが作成されます。

EC2インスタンスのセキュリティグループの修正

ALBからEC2インスタンスへの接続可能となるようにセキュリティグループを修正します。 EC2インスタンスのセキュリティグループにインバウンドルールを追加します。 ソースにロードバランサーのセキュリティグループを指定、プロトコルはHTTPを選択しアクセスを許可します。 AWSの初期値ではロードバランサーからEC2への接続はHTTPとなる事に注意してください。ロードバランサー作成後、EC2インスタンスと接続するまで少し時間がかかります。

HTTPSアクセスの動作確認

計画通りにHTTPS化されたサイトにアクセスできるか試してみましょう。 今の時点ではまだ本番の環境に手を加えたくないので、まずはパソコンのhostsファイルを書き換えてテストする方法を取ります。 nslookupコマンドでALBのDNS名が指すIPアドレスを取得します。 パソコンのhostsファイルを編集します。 www.hogehoge.jpに先ほど取得したIPアドレスを記述します。 (このあと設定反映のためにパソコンの再起動が必要になるケースもあります) ブラウザを開きhttps://www.hogehoge.jp/にアクセスします。 HTTPS化されたサイトにアクセスできればサイトのHTTPS化は成功です。

本番DNSの修正

最後の仕上げとして、本番のDNS設定を修正します。 www.hogehoge.jpのCNAMEをロードバランサーのDNS名へ変更してください。 AWSのロードバランサーIPアドレスは不定期に変更されますので、IPアドレスではなくDNS名で登録するように注意してください。 先程パソコンに設定したhostsファイルの変更は破棄しましょう。ブラウザを開き、問題なくアクセスできれば作業は完了です。 今後は外部からのアクセスはすべてALBを経由する形になります。EC2のセキュリティグループを修正し、ALB以外からのアクセスを不可にすればサーバーのセキュリティも向上します。

その他の作業

サーバーの設定完了後は、サイトのコンテンツに関する修正も行いましょう。 内部リンクが含まれているページがあれば、httpsで始まるURLに修正しましょう。httpで始まる以前のURLにアクセスがあった際、HTTPS化後の新しいURLへ301リダイレクトする設定も行ないましょう。 可能であれば、検索エンジンや外部にあるリンクなども修正しておきたい項目です。

まとめ

今回はAWS上に構築されたサイトのHTTPS化の手順を紹介しました。 Webサイトの常時SSL化はすでに必須と言える状況です。正しく対応すればユーザーに安全なサービスを提供でき、検索結果順位にも好影響をおよぼします。 AWSの便利な機能をうまく活用して安全なサイトを構築しましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】