概要
AWS上でWordPressブログをホストし,HTTPS通信を行う環境を構築する
目次
- 仮想NW&サーバ構築
- 全体像
- WebサーバにSSL証明書を導入
- ドメイン取得
- SSL証明書の取得・導入(Let’s Encryptの利用)
- WordPressのSSL対応
仮想NW&サーバ構築
WordPressブログをホストするにはWebサーバとDBサーバが必要で,Webサーバはインターネットアクセスできる必要があります.
AWS上では下記の要素で環境を構築できます.
- EC2インスタンス(Webサーバ用)
- Apache(フリーのWebサーバソフト)をインストール
- パブリック&プライベートIPアドレスを設定
- EC2インスタンス(DBサーバ用)
- MariaDBをインストール
- プライベートIPアドレスを設定
- インターネットゲートウェイ
- Webサーバ用インスタンスの通信用
構成においては下記書籍を参考にしました.大まかに分けて①AWS ②ネットワーク ③サーバの3つの知識について平易に解説されていて,初学者にもわかりやすい内容になっています.
私が手に取ったのは改訂3版で,AWSのインターフェイスに変更が加わっていたため,ところどころ行間を埋める必要がありました.新版が発売されているようなのでそちらをお勧めいたします.
全体像
結果として,下記のようなネットワーク構成になります.

WebサーバにSSL証明書を導入
前章の書籍を一通りさらうと,自分のWordPressのサイトにアクセスできます.
Webサーバ用のEC2インスタンスのパブリックIPアドレスにブラウザアクセスすればOKです.
ただし,WebサーバにSSL証明書を導入していないため,HTTPSでの通信ができません.Chromeであればアドレスバーに’保護されていない通信’と表示されます.
本章ではWebサーバにSSL証明書を導入し,HTTPS通信することを目標とします.
ドメインの取得
本章ではLet’s EncryptというSSL証明書発行サービスを利用するのですが,その際自分の所有するドメインが必要になります.
AWSにはRoute53というサービスがあり,ここで独自のドメインを購入できますので,今回はこちらを利用しました.
また,Route53では自分の所有するドメインと,仮想サーバの持つパブリックIPアドレスを対応させるゾーン情報を登録することができます.
取得したドメイン(厳密にはホスト名+ドメイン)をWebサーバのパブリックIPアドレスと対応させれば,ブラウザのアドレスバーにドメインを入力することで自分のWebページにアクセスすることが可能になります.
Route53ダッシュボードの’ドメインの登録’欄から申し込みが可能です.およそ$11.0ほどが最安値のようです.

SSL証明書の取得・導入(Let’s Encryptの利用)
本節ではSSL証明書の取得&導入を実施します.下記の記事が参考になります.
①Let’s Encryptを利用してApache 2.4サーバをHTTPS化する(CentOS7向けの記事)
②Amazon Linux 2 に Certbot を導入
前者の記事はCentOS7向けの記事で,今回のAWSの仮想サーバで用いているAmazon Linux 2では,証明書発行ツールのCertbotのインストールは別の手順を踏む必要があります.
Amazon Linux 2にCertbotをインストールする手順を解説したのが後者の記事なので,まずはこちらに沿ってWebサーバのEC2インスタンスにSSH接続して作業を進めます.
$ sudo certbot
を実行するとメールアドレスとドメインを要求されます.
また,このとき下記の留意点があります.
- 仮想サーバのWebサーバ用ソフトが稼働しており,ポート80でListenしている.
$ sudo systemctl start httpd
でApacheを起動しておきましょう
- 取得したドメインとWebサーバのパブリックIPアドレスが対応づいている(名前解決できる状態である)
- Route53の’ドメインの登録’でゾーン情報を登録しておきましょう
上記がうまくいくと/etc/httpd/conf.d/httpd.conf
にRewriteRule
などの記述が追加されます.これはWebサーバあてにHTTP通信した際にHTTPS通信にリダイレクトするための設定項目です.
ここまででCertbotの導入が終わり,/etc/letsencrypt/[ドメイン名]
以下に証明書や秘密鍵が格納されています.①の手順でいえば,’証明書の初回作成’まで完了している状態ですので,そのまま手順を進めましょう.
ただし,/etc/httpd/conf.d/rewrite.conf
の内容はすでに/etc/httpd/conf.d/httpd.conf
に設定されているので,とばしてO
Kと思われます.
WordPressのSSL対応
WordPressをHTTPS通信で閲覧・編集するには,サイトのSSL化が必要です.
SSL化には’Really Simple SSL’を利用しました.これによってサイトに埋め込まれているリンクなどをSSL化できます.
プラグインをインストールし,ガイダンスに沿って作業すればOKです.
最終的に下記がアドレスバーに表示され,HTTPS通信ができます.

コメント