WordPressのセットアップ (3) Let’s Encryptで常時SSL化する

概要

WordPressのサイトを常時SSL化して、HTTPSでアクセスできるようにします。

HTTPSとは→ https://ja.wikipedia.org/wiki/HTTPS

環境

  • GCP MarketplaceからデプロイしたWordPress仮想マシン
    • Debian 9
    • Apache
  • DNS設定(Aレコード)
    • blog.sasashima.works

SSHでログインする

まずは証明書を発行するために仮想マシンにSSHでログインします。

Certbotをインストールする

Let’s Encryptで証明書を発行するために必要なパッケージをインストールします。

# snapのインストール
sudo apt update
sudo apt install snapd
sudo snap install core
sudo snap refresh core

# certbotのインストール
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

証明書の発行

準備ができたので、certbotで証明書を発行します。

# 証明書の発行
sudo certbot --apache

# 証明書の更新テスト
sudo certbot renew --dry-run

証明書を定期更新する設定をする

certbotで発行した証明書は有効期間が3ヶ月しかないので、crontabで定期的に更新されるように設定します。

# 毎月1日7時に更新
0 7 1 * * sudo /usr/local/bin/certbot renew

nanoでファイルを保存するときは Ctrl + O キーを押して、ファイル名を入力して Enter キーを押します。
nanoを終了するときは Ctrl + X キーを押します。

WordPressでアドレスをhttpsに変更する

証明書の発行ができたので、WordPressのアドレスをhttpsに変更します。
ブラウザでログインするときに https でアクセスできていることを確認しました。

Really Simple SSLプラグインをインストール&SSLを有効化

サイトがSSLで実行されるようにReally Simple SSLプラグインをインストールします。
プラグインを有効化したら、「はい、SSL を有効にします。」をクリックします。

301 .htaccess 転送を有効化

「.htaccess ファイルは書き込み可能ではありません。」という警告が出ているので、.htaccessファイルをドキュメントルートに作成します。

sudo touch /var/www/html/.htaccess
sudo chown www-data:www-data /var/www/html/.htaccess

www-data は Apache を実行しているユーザーです。

Really Simple SSL から警告の表示が消えました。
.htaccess による301転送を推奨しているので、「301 .htaccess 転送を有効化」にチェックを入れて、設定を保存します。

httpリクエストがhttpsに転送されることを確認します。

# 301転送のルールが書き込まれていることを確認
cat /var/www/html/.htaccess
# httpリクエストが301で転送されることを確認(ドメインは自分のサイトに変更する)
curl -v http://blog.sasashima.works

サイトの表示確認

サイトにhttpsでアクセスしたときに表示が崩れないことを確認します。

まとめ

この記事では、Let’s Encryptで常時SSL化して、サイトがHTTPSでアクセスできるようになりました。

参考

コメントする