[前編] CloudFrontを使ってWordPressをHTTPS&高速化する

◆WordPressの設定手順

AWS Certificate Manager(以下:ACM)ではAWSのサービス限定で使えるSSL証明書を無料で発行することができます。

残念ながらAWSの外部でこの証明書を使用することはできませんが、無料かつ自動更新のSSL証明書なので管理が非常に容易になります。

今回はACMで取得したSSL証明書とCloudFrontを利用してWordPressをHTTPS通信可能にする方法を書きたいと思います。
ちなみにこのHTTPS通信に対応させたいWebサービスはAWS内にサーバーがなくても問題ありません。
実際に以前までこのブログも、自宅のラズベリーパイのWebサーバーをACMとCloudFrontを利用してHTTPS通信が可能になるような構成にしていましたしね!

[中編:SSL証明書の取得]→クリックで開く
[後編:CloudFrontの設定]→クリックで開く

流れ

[前編の記事]
1, WordPressの作成(既にある場合はスキップ)
2, wp-configの編集
3, Apacheの設定を変更

[中編の記事]
4, ACMで証明書の取得

[後編の記事]
5, CloudFrontの設定

事前準備:WordPressを用意


今回はWordPressをHTTPSに対応させる予定のため、WordPressのサーバーをAWS LightSailで用意しました。最初に述べたように、HTTPSに対応させるWebサーバーは、AWS以外の別のレンタルサーバーや個人の自宅サーバーでも可能です。


ちなみに今回はLightSailで作成したため、以下のコマンドで初期設定のログインIDとパスワードを確認しておく必要があります。
$cat ~/bitnami_credentials

画像の例の場合だとhttp://3.113.13.138が初期のアクセスURLですので、きちんとアクセスできるかも確認しておきましょう。


アクセス確認のついでに、設定画面から日本語に切り替えておきました。
WordPressのURLは設定画面で決められているものしか受け付けられないので、IPアドレスが変わってしまったりドメインを割り当てるとアクセス不可能になるため注意が必要です。

ただしこのままのhttp://3.113.13.138というURLでサービスを公開する訳には行かないので、手順の途中で任意のドメインに変更を行います


LightSailで作成した場合には、IPアドレスが固定化されていないため静的IPアドレスを作成してアタッチします。この時点で先ほどのURLからWordPressにアクセスすることはできなくなってしまいますが、一旦はそれでも大丈夫です。


管理をしやすくするために仮のドメインを割り当てておきます。
今回は「origin.suno.site」というサブドメインを発行しました。

サブドメインを割り当てる必要はないのですが、例えばWebサーバーの引越しなどでIPアドレスが変わった場合などにRoute53の設定だけを切り替えれば済むようになるため割り当てています。管理をしやすくするためにも、直接IPアドレスを指定する箇所はなるべく減らしていきたいですね。

WordPress側での設定

ここからはWordPress側での設定となります。LightSailでもレンタルサーバーでも自宅サーバーでもやるべきことは共通になります。


まずはお馴染みの[wp-config.php]を編集します。
LightSailなどBitnamiで立ち上げた場合には以下を開きます。
$vim /opt/bitnami/apps/wordpress/htdocs/wp-config.php


サイトのURLを設定している箇所を、サービスを公開する時に使うURLに変更しておきます。
今回は[https://suno.site]にしておきました。

注意していただきたいのはひとつ前の手順で設定したサブドメイン[origin.suno.site]ではなく、公開したいドメインの設定をしてあげる必要があります。


続いてWebサーバーの設定を行います。
LightSailなどのBitnamiから立ち上げている場合には以下のコマンドで開くことができます。
$vim /opt/bitnami/apache2/conf/httpd.conf

httpd.confの1行目に以下を追記して保存します。

# CloudFrontからのアクセスならHTTPSにする
SetEnvIf  CLOUD_FRONT_ACCESS "TRUE" HTTPS
RequestHeader set CLOUD_FRONT_ACCESS "TRUE" env=HTTPS

これはCLOUD_FRONT_ACCESSというヘッダー情報にTRUEが入っていれば、HTTPSとしてリクエストヘッダを上書きする設定です。

設定が終わったらWebサーバーを再起動して設定を反映します。
Bitnamiの場合は専用コマンドで再起動なので注意しましょう。
$sudo /opt/bitnami/ctlscript.sh restart apache

これでWordPress側でやるべき設定は全て完了しました。

ACMによるSSL証明書の取得

次はACMによるSSL証明書の取得です。
長くなるので中編の記事に書きました。
内容としては難しいところはないので、このまま後編を見ていただいても問題ありません。

[中編:SSL証明書の取得]→クリックで開く
[後編:CloudFrontの設定]→クリックで開く

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)