AWS LightsailのWordPressを超簡単にSSL化する

はじめに

今回は、AWS Lightsail + WordPressの環境において、簡単にSSL化できる方法を紹介します。

AWS Lightsail には、Bitnami HTTPS Configuration toolというものが入っており、

  • SSL化(フリーの証明書Let’s Encryptを使用)
  • HTTPSへのリダイレクト
  • wwwドメインへのリダイレクト
  • 証明書の自動更新

をしてくれます。

前提/事前準備

  • 独自ドメインの取得&DNS設定が完了していること
  • HTTPで接続できること
  • Let’s Encryptに登録するメールアドレスがあること

設定手順

LightsailインスタンスにSSHで接続します。

下記のコマンドを実行します。

sudo /opt/bitnami/bncert-tool

もし最新版へのアップデートを促された場合には”Y”を選択します。完了したら上記コマンドを再度実行してください。

サイトで使用するドメインを入力します。

wwwドメインを含める場合は”Y”を選択します。

各種リダイレクトの設定を選択します。

  • HTTP->HTTPSへのリダイレクト:常時SSL化したいので”Y”
  • wwwなし->wwwありドメインへのリダイレクト:常時wwwありドメインにしたいので”Y”
  • wwwあり->wwwなしドメインへのリダイレクト:常時wwwありドメインにするなら”N”

入力事項の確認をしてよければ”Y”を入力します。

次は、Let’s Encryptの設定です。登録するメールアドレスを入力します。特に確認メールなどは届かないので、注意して入力しましょう。

“Y”を入力し、同意します。

しばらく待って、”Success”と表示されれば設定完了です。

確認手順

ブラウザでサイトを開いて、証明書が正しくセットアップされているかを確認します。Chromeを例に説明します。

アドレスバー左側の鍵アイコンをクリックします。

「この接続は保護されています」と表示されていることを確認します。その下の「証明書(有効)」をクリックすることで証明書の詳細を確認できます。

リダイレクトの動作確認をします。下記4つのURLをブラウザのアドレスバーに入力します。

http://[ドメイン名]
http://www.[ドメイン名]
https://[ドメイン名]
https://www.[ドメイン名]

4つのドメインすべてが

https://www.[ドメイン名]

へリダイレクトされていれば動作確認OKです。

補足

WordPressの[設定]- [一般]にあるWordPressアドレスとサイトアドレスをHTTPからHTTPSに変更します。これをしないとサイト内の画像ファイルなどがHTTP通信のままになるようです。

上記画像のようにグレーアウトしている場合は、wp-config.phpファイル側に設定がされています。AWS Lightsailの場合は下記の場所にあります。

/opt/bitnami/apps/wordpress/htdocs/wp-config.php

wp-config.phpファイル内の下記設定を”http://”から”https://”に書き換えます。

define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST'] . '/');
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST'] . '/');

以上です。