Home
AWS
AWSでサイトをSSL化しよう!!

AWSでサイトをSSL化しよう!!

公開日
2020.12.29
更新日
2022.04.02
AWSでサイトをSSL化しよう!!

どうも!かけちまるです!

前提

  • ・EC2でWEBサーバーが構築されている事
  • ・ドメインを取得しており、IPアドレスと紐付けされている事
  • ・WEBサーバーソフトウェアはApacheを起動している

結論

方法はいくつかあるようですが、今回はAWS Certificate Manager(ACM)でSSL証明書を発行し、ELB(ELBのApplication Load Balancer)にAWS Certificate Managerで作成したSSL証明書を関連ずけてSSL化を実現させます。

構成図

ApacheにSSLモジュールをインストール

EC2サーバーにSSHでログイン

コマンド
コピー
ssh -i ~/Desktop/{pemファイルがあるパスを指定} ec2-user@{EC2サーバーのIPアドレス}

SSLモジュールのインストール

コマンド
コピー
sudo yum -y install mod_ssl

Apacheを再起動

Apacheを再起動しないと設定が反映されないのでApacheを再起動するコマンドを打ちます。

Apacheを再起動

コマンド
コピー
sudo systemctl restart httpd.service

Apacheが起動しているか確認

コマンド
コピー
sudo systemctl status http.service

下画像の表示になっていればApacheが起動していることになります。

Apache再起動時の画像

AWS Certificate Manager(ACM)でSSL証明書を発行

AWSのコントロールパネルでCertificate Managerを開き、「証明書のリクエスト」をクリック。

AWSコントロールパネルの左上のサービスメニューからCertificate Managerを選択します。

AWSコントロールパネル

アクセスできたら証明書のリクエストをクリックします。

AWSコントロールパネルCertificate Manager 

パブリック証明書のリクエストを選択

パブリック証明書のリクエストを選択し、証明書のリクエストをクリック

パブリック証明書のリクエスト

ドメイン名の追加

このサイトを例にするとkakechimaru.comで入力します。

*.kakechimaru.comを指定することによって「www.kakechimaru.com」,「site.kakechimaru.com」などのサブドメインをサポートすることができます。
ドメインの頭に「*」がついていることがポイントですね。

ドメイン名の追加

検証方法の選択

  

「DNSの検証」を選択し、「確認」をクリックします。

検証方法の選択

次のタグを追加では入力してもしなくてもどちらでも大丈夫です。

確認後とリクエストを選択

設定内容を確認し、「確認とリクエスト」をクリック

Route53にレコードセットを作成

最後の検証画面にてドメイン名をクリック。

検証画面

下に詳細がでるので、そこにある「Route53でのレコードの作成」をクリック。
Route 53 でのレコードの作成画面が出てくるので作成をクリックするとレコードを作成できます。

Route53でレコードを作成

作成した証明書の状況は検証保留中になっているかもしれませんが、そのうち発行済になるので気にせず次にいきましょう。

ELB(ELBのApplication Load Balancer)の設定

ロードバランサーの作成

EC2に移動し、ロードバランサーから「ロードバランサーの作成」をクリック

ロードバランサーの作成

ロードバランサーの種類を選択

一番左のApplication Load Balancerを選択

ロードバランサーの種類を選択

各種の設定(ロードバランサーの設定)

ここでは説明しているところ以外は、デフォルトのままで良いと思います。

名前の設定をします。
ここは任意の名前を設定してください。

リスナーを設定します。
「リスナーを追加」からプロトコルをHTTPSに設定します。

アベイラビリティーゾーンを設定します。
VPCを選択し、アベイラビリティゾーンとサブネットを2つ以上選択してください。

各種の設定(ロードバランサーの設定)

各種の設定(セキュリティー構成の設定)

証明書タイプをACMから証明書を選択する(推奨)
証明書の名前で先ほどAWS Certificate Manager(ACM)で作成した証明書を選択します。

各種の設定(セキュリティー構成の設定

各種の設定(セキュリティーグループの設定)

 

セキュリティーグループの割り当てで新しいセキュリティーグループを作成するを選択
セキュリティグループ名、説明は任意の値で設定してください。
最後にタイプをHTTP、HTTPSを設定します。

各種の設定(セキュリティーグループの設定)

各種の設定(ルーティングの設定)

名前を任意で設定します。
プロトコルをHTTPSに設定してください。

各種の設定(ルーティングの設定)

各種の設定(ターゲットの登録)

ターゲットにEC2インスタンスを登録します。
下からEC2インスタンスを選択し、「登録済みに追加」で設定できます。

各種の設定(ターゲットの登録)

各種の設定(確認)

設定内容を確認し、作成をクリック

 

EC2でHTTP通信を許可する

EC2のセキュリティグループの設定

EC2に移動し、セキュリティグループを選択します。
EC2インスタンスに紐づけられているセキュリティグループを選択しインバウンドルールの編集をクリック

EC2のセキュリティグループの設定

HTTP通信を許可する

ルールを追加からHTTP通信を許可するよう設定します。
設定したらルールを保存をクリック

HTTP通信を許可する

エイリアスの設定

Route53でレコードの設定

Route53に移動し、ホストゾーンをクリック。
対象のドメインをクリック。

Route53でレコードの設定

設定済のAレコードを選択し編集をクリック

Route53でレコードの設定

値/トラフィックのルーティング先をApplication Load Balancer と Classic Load Balancer へのエイリアスに設定します。
値に設定したApplication Load Balancerを設定します。

Route53でレコードの設定


動作確認

https://ドメイン名でアクセスして表示できたら完了です。

https通信の動作確認

お疲れ様でした!

おわり

かけちまる
かけちまる
Webエンジニアをしています。
HTML/CSS/JavaScript/jQuery/PHPができます。
WEB制作を中心に日々学びになったこと、興味が沸いたことについて初心者の方でもわかりやすいようにアウトプットしていくブログです。

関連記事

【将来ワクワク】イーサリアムについて知ってみる

【将来ワクワク】イーサリアムについて知ってみる

最近よく聞くIaaS、PaaS、SaaSとは??

最近よく聞くIaaS、PaaS、SaaSとは??

【Google Maps API】Googleマップ埋め込みのピンを変更する

【Google Maps API】Googleマップ埋め込みのピンを変更する

【初心者必読】ブロックチェーンの基本知識

【初心者必読】ブロックチェーンの基本知識

【Cookieとは?】米GoogleがサードパーティCookieの廃止を延期

【Cookieとは?】米GoogleがサードパーティCookieの廃止を延期