CGP上のWordPressのSSL化

CGP上のWordPressのSSL化

前回GCP上にWordPressを設定しました。今回は、設置したWordpressのSSL化を行います。最近、GoogleはSSL化を強化しており、Google ChromeなどはSSL化していないサイトに関しては「保護されていない通信」という警告を表示するようになりました。今後のことを考えても、SSL化をしておくことが重要です。

Let’s Encryptを利用してSSL証明を取得

SSLの証明書を取るには、通常はお金を払うことで証明してもらう必要があります。ただ、運営コストはできるだけかけたくないので、今回は無料で証明を発行してくれるLet’s Encryptを利用します。

certbotのインストール

以下のコマンドを実行して、Cerbotをインストールします。certbotを使うと、コマンドライン上で証明書の発行からWebサーバーの設定まで行ってくれるので便利です。

$ sudo apt-get update -y && sudo apt-get upgrade -y  
$ sudo apt-get install software-properties-common  
$ sudo add-apt-repository ppa:certbot/certbot  
$ sudo apt-get update
$ sudo apt-get install python-certbot-apache

CertbotをからSSLの証明書とApacheの設定を変更します。

$ sudo certbot --apache -d hogehoge.com

メールアドレス、同意、HTTP通信をどうするかを選んだら

一応、Apacheを再起動

$ sudo systemctl restart apache2

WordPressのSSL化

プラグイン「Really Simple SSL」をインストール

WordPressのダッシュボード画面に入って、プラグを有効化することでSSLで運用できます。

WordPressの「アドレスとサイトアドレスを変更

WordPressのダッシュボードから「設定」-「一般」から「WordPressアドレス」と「サイトアドレス」を証明書を発行したドメイン(https://hogehoge.com)へと変更

証明書の自動更新

Let’s Encryptは3ヶ月で証明書が失効するようなので、cronを使って定期的に更新を行います。
/etc/cron.monthly/に以下を入力したcertbot_renew.shを作成します。

#!/bin/bash
certbot renew
service apache2 reload

実行権限を付与させる

sudo chmod +x /etc/cron.monthly/certbot_renew.sh

確認

ChromeからWordpressサイトにhttpsでアクセスして、「保護されていない通信」が表示されなければOKです。

最後に

情報化社会の現代、個人で情報発信すうることの価値は上がってきていると思います。特に、セルフブランディングという言葉ができたようにこういったツールを使って、自分を高めていけたらなと考えてます。ただ、業務多忙で不定期更新の上、推敲もままならないのでちゃんとしないと。。。誤りや抜けなどがありましたら、コメントいただけると幸いです。

おまけ

WordPressのレイアウトが崩れたとき

Wpコマンドで設定とIPアドレスが合っているか確認

$ cd /var/www/html/wordpress  
$ wp option get home  
$ wp option get siteurl  

IPが異なってる場合は以下を実行して修正。

$ wp search-replace 'https://[Old Ip Address]' 'https://[New Ip Address]'

証明を失効させる場合

コマンド証明書を失効

$sudo certbot revoke --cert-pat=/etc/letsencrypt/live/hogehoge.com/cert.pem

関連ファイルの削除

sudo certbot delete --cert-name hogehoge.com

Apacheの設定を削除

$ sudo rm /etc/apache2/sites-enabled/hogehoge-le-ssl.conf

Settingカテゴリの最新記事