【最速】AWS LightSail上のWordPressを常時HTTPS化する

こんにちは。本日はAWS LightSailで構築したWordPressブログを常時SSL化する手順をまとめておこうと思います。色々なサイトで色々なやり方が紹介されていましたが、結局ここでご紹介する方法が一番つまづきなく最速で導入できましたので、これからブログ構築される方の参考になりましたら幸いです!

ステップ0:LightSailコンソールにログイン

LightSailのコンソール画面から、”Connect Using SSH”をクリックしてターミナルを開いておきます。

ステップ1:Let’s Encryptをダウンロード

Let’s Encryptは無償の証明書発行サービスです。ここで発行した証明書をサーバに配置しておくことでHTTPS化が可能になります。

以下のコマンドではgitコマンドを使うのですが、デフォルトではGitが入っていないので、事前に使えるようにしておきます。

## Gitを使えるようにするコマンド
sudo apt-get install git
cd /tmp
git clone https://github.com/letsencrypt/letsencrypt

これでtmpディレクトリ配下にletsencryptというディレクトリができたかと思います。

ステップ2:証明書の発行

サクサク行きます!

ドメイン名のところは、www.から始まるドメイン名で指定すればOKです。

証明書が/etc/letsencrypt/live配下に作られます。

cd letsencrypt
./letsencrypt-auto 
./letsencrypt-auto certonly --webroot -w /opt/bitnami/apps/wordpress/htdocs/ -d ドメイン名 

2021.02.14 更新

2020年末頃にようやく最新のPHP7.4系のBitnami WordPressイメージが利用できるようになりました。このイメージを使うと、もはや./letsencrypt-autoコマンドは以下のようなエラーが出て利用できなくなってしまっていました。

Requesting to rerun ./letsencrypt-auto with root privileges...
./letsencrypt-auto has insecure permissions!
To learn how to fix them, visit https://community.letsencrypt.org/t/certbot-auto-deployment
-best-practices/91979/
Your system is not supported by certbot-auto anymore.
certbot-auto and its Certbot installation will no longer receive updates.
You will not receive any bug fixes including those fixing server compatibility
or security problems.
Please visit https://certbot.eff.org/ to check for other alternatives.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Certbot doesn't know how to automatically configure the web server on this system. However,
 it can still get a certificate for you. Please run "letsencrypt-auto certonly" to do so. Y
ou'll need to manually configure your web server to use the resulting certificate.

どうやら、certbot-autoは最近の更新で非推奨となったようです・・・omg・・・本来であれば、推奨された方法でのインストールをすべきですが、自分の場合はビジネスクリティカルでない&急ぎだったということで、以下の方法で従来の方法で証明書発行できるようにしました。

[Solution] Your system is not supported by certbot-auto anymore – Discuss Frappe/ERPNext

こちらの方法では、古いバージョンのcertbot-auto自体をダウンロードしてきて、./letsencrypt-autoコマンドの代わりに、./certbot-auto certonly …コマンドを実行することで証明書発行できます。

推奨の方法については、時間を見つけて記載します・・・!

ステップ3:サーバへの配置&再起動

サクサクサクサク・・・ステップ2で作成された証明書をApache Webサーバ上の所定の場所に置き直します。

以下のコマンド実行後、https://ドメイン名で接続できるようになっているはずです!なんとこれだけ!超簡単に完了できました。実は、もう少しだけ実施すべきことがありますので、以下のステップも実施ください!

sudo cp /etc/letsencrypt/live/ドメイン名/fullchain.pem /opt/bitnami/apache2/conf/server.crt 
sudo cp /etc/letsencrypt/live/ドメイン名/privkey.pem /opt/bitnami/apache2/conf/server.key
sudo /opt/bitnami/ctlscript.sh restart apache

ステップ4:証明書更新の自動化

Let’s Encryptの証明書は90日間おきに更新が必要になります。以下を手動で実行してもいいのですが、Linux OSにはCronという、特定の処理を定期的に実行する仕組みがあるので、これを利用します。

こちらは手動実行コマンド。renewコマンドで証明書を更新できます。

cd /tmp/letsencrypt
./letsencrypt-auto renew
cp /etc/letsencrypt/live/ドメイン名/privkey.pem /opt/bitnami/apache2/conf/server.key
cp /etc/letsencrypt/live/ドメイン名/fullchain.pem /opt/bitnami/apache2/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache  

これをcronに仕込むには、以下のコマンドを実行していきます。

sudo crontab -e 
1 1 1 * * /tmp/letsencrypt/letsencrypt-auto renew 
2 1 1 * * cp /etc/letsencrypt/live//privkey.pem /opt/bitnami/apache2/conf/server.key 
3 1 1 * * cp /etc/letsencrypt/live//fullchain.pem /opt/bitnami/apache2/conf/server.crt 
4 1 1 * * /opt/bitnami/ctlscript.sh restart apache 

## nanoエディタの場合、編集後はctrl+Xで保存

以上でサーバ側の設定が完了しました。

ステップ5:WordPress側の設定

最後にWordPressの設定を行います。ステップ4まででサーバ側のSSL設定が完了していますが、実際にWordPressサイトにアクセスする際に、httpでアクセスした際にhttpsにリダイレクトする、httpsでのみアクセスさせる、等の制御設定を実施しておくべきです。これらをまとめて一瞬で済ませてくれるのが「Really Simple SSL」というプラグインなのです。

インストール後、設定画面でOKを押していくだけで完了です。

Really Simple SSL

以上、本日も最後までご覧いただきありがとうございました!

おしまい

0

この記事を気に入っていただけたらシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。

ABOUT US

アバター
Yuu113
初めまして。Yuu113と申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。