はじめに
- 以前、AWSのLightsailでWordPressを導入して、Webサイトを構築しました。
- 前回、構築したWebサイト用に取得したドメインをRoute53に追加しました。
- 今回は、
AWS Certificate Manager(ACM)
とCloudFront
を利用して、HTTPS
通信可能にしました。 - その時の手順を備忘録としてまとめました。
動作環境
- macOS Catalina 10.15.4
1. ACMでの作業
- ACMでSSL認証書を作成します。ただしこの証明書は、外部で使用することはできませんが、無料かつ自動更新なので管理が非常に容易です。
-
AWSコンソールへアクセスし、サインインします。
-
リージョン
をバージニア北部
に変更します。 -
サービスを検索する
にCertificate Manager
入力します。 -
Certificate Manager
コンソールへアクセスします。
-
証明証のプロビジョニング
の今すぐ始める
をクリックします。
- 証明証のリクエストを行います。
- ドメイン名の追加を行います。
- 検証方法の選択を行います。
- タグの追加を行います。
-
確定とリクエスト
をクリックします。
-
Route53でのレコードの作成
をクリックします。
-
作成
をクリックします。
-
成功
と表示されることを確認します。 -
続行
をクリックします。
- 証明書の一覧が表示されます。
- 対象ドメインに対して、作成した証明書が表示されていることを確認します。
-
状況
が発行済み
になっていればOKです(少し時間がかかる場合があります)。
- 以上で、ACMでの作業は、完了です。
2. CloudFrontでの作業
- AWSマネージメントコンソールへアクセスします。
-
リージョン
をバージニア北部
に変更します。 -
サービスを検索する
にCloudFront
入力します。 -
CloudFront
コンソールへアクセスします。
-
Create Distribution
をクリックします。
-
Web
のGet Started
をクリックします。
- Distributionの設定を行います。
-
Origin Settings
について、下記項目を設定します。 他項目は、デフォルトのままでOKです。-
Origin Domain Name
:Webサイトの仮(サブ)ドメイン名
-
Origin Protocol Policy
:HTTP Only
-
Origin Custom Headers HearderName
:CLOUD_FRONT_ACCESS
-
Origin Custom Headers Value
:TRUE
-
-
Default Cache Behavior Settings
について、下記項目を設定します。他項目は、デフォルトのままでOKです。 -
Distribution Settings
について、下記項目を設定します。他項目は、デフォルトのままでOKです。-
Alternate Domain Names
:最終的に公開したいドメイン名
-
SSL Certificate
:Custom SSL Certificate
にチェックを入れて、作成したACM
を選択します。
-
-
Create
をクリックします。
-
- CloudFront Distributionの一覧が表示されます。
- 作成したDistributinonが表示されていることを確認して、
ID
をクリックします。
-
Behaviors
をクリックします。 -
Create Behavior
をクリックして、4つのBehavior
を作成します。- 各設定項目については、下記の表の通りです。他項目は、デフォルトのままでOKです。
項目名 | Behavior1 | Behavior2 | Behavior3 | Behavior4 |
---|---|---|---|---|
Path Pattern | Default(*) | /wp-json/* | /wp-admin/* | /wp-login.php* |
Viewer Protocol Policy | Redirect HTTP to HTTPS | Redirect HTTP to HTTPS | Redirect HTTP to HTTPS | Redirect HTTP to HTTPS |
Allowed HTTP Methods | GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE | GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE | GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE | GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE |
Cache Based on Selected Request Headers | Whitelist | Whitelist | Whitelist | Whitelist |
Whitelist Headers | CloudFront-Forwarded-Proto,Host | CloudFront-Forwarded-Proto,Host,X-WP-Nonce | CloudFront-Forwarded-Proto,Host | CloudFront-Forwarded-Proto,Host |
Object Caching | デフォルトのまま | デフォルトのまま | Customize | Customize |
TTL | デフォルトのまま | デフォルトのまま | 0 | 0 |
Forward Cookies | Whitelist | All | All | All |
Query String Forwarding and Caching | Forward all,cache based on all | Forward all,cache based on all | Forward all,cache based on all | Forward all,cache based on all |
- 以上で、CloudFrontでの作業は、完了です。
3. Route53での作業
-
外部から
https://ドメイン名
でアクセスする時、Route53
で作成済みのホストゾーン(Aレコードのエイリアス)
でCloudFront
のドメインがアクセス先になるように設定します。 -
Route53コンソールへアクセスします。
-
レコードセットを作成します。
-
最終的に、対象ドメインに対して、5件分のレコード(2件の
A
、NS
、SOA
、CNAME
)が表示されていることを確認します。
-
以上で、Route53での作業は、完了です(実際に変更反映が完了するまで、数十分かかる場合があります)。
4. WordPressでの作業
-
wp-config.php
を編集します。 - Macの
ターミナル
を起動します。 - LightsailインスタンスにSSH接続します。
- 下記のコマンドを実行して、
wp-config.php
を開きます。
bash
vim /opt/bitnami/apps/wordpress/htdocs/wp-config.php
- 下記項目を変更して、保存します。
-
Apache
の設定を変更します。 - 下記のコマンドを実行して、
httpd.conf
を開きます。
bash
vim /opt/bitnami/apache2/conf/httpd.conf
- 1行目に下記を追記して、保存します。
SetEnvIf CLOUD_FRONT_ACCESS "TRUE" HTTPS
RequestHeader set CLOUD_FRONT_ACCESS "TRUE" env=HTTPS
-
Apache
を再起動します。下記のコマンドを実行します。
bash
sudo /opt/bitnami/ctlscript.sh restart apache
- 以上で、WordPressでの作業は、完了です。