AWS Lightsail でWordPress を簡単に常時SSL化

bncert-tool-startWordPress
この記事は約9分で読めます。

今回はお得ですよ、奥さん旦那さん!

こんにちは、つかしゅう(専業主夫七級←降級)です。

今回は、AWS LighgsailWordPressBitnamiなど限定のネタですがとっても便利でお得なお話です。なんと、ツール1つで、

  • 常時SSL化(Let’s Encrypt の legoを使用)
  • HTTPSへのリダイレクト(www.あり→wwwなしも同時に一緒にできる)
  • 証明書の自動更新設定(cronジョブを設定してくれる)

の3役をこなしてくれます!

つかしゅう
つかしゅう

どや、お得やろ?知りたいやろ?使いたいやろ?

練習中
練習中

なんでエセ関西弁…

それでは、早速紹介していきましょう(≧∇≦)/
題して…

Lightsail でWordPress 常時SSL 化する一番簡単な方法(HTTPSリダイレクト設定付き)

こんな方にぜひ読んでほしい!

  • これからAWS Lighgsail + WordPressSSLの設定をしようとしている方
  • HTTPSへのリダイレクトなど、サーバの設定は難しそうと思っている方、実際に躓いた方
  • vim?bash?git? あの黒い画面嫌いなんだけど…という方
  • Cerbotを使おうとしている方 チョットマッター!!▷ (゜Д゜)

AWS Lighgsail には Bitnami HTTPS Configuration Tool (bncert tool)長っ! が、入っているのです。本日はこちらをご紹介します。

なぜ Bitnami bncert tool を使うのか

Because 簡単だからです。他に理由はありません。
以下に、お手製の比較表を載せます。どれほど簡単なのかわかると思います。

Bitnami bncert tool(lego)Cerbot
デフォルトでインストール済みコマンドで手動インストール
「lego」を使用「Cerbot」を使用
コピペ(コマンド一行)で使える設定ごとにコマンドが必要
証明書の自動更新を設定してくれる自動更新設定をコマンドで設定(もしくは直接ファイルを編集)する
HTTPからHTTPSへのリダイレクトや、wwwからwwwなしへのリダイレクトを設定できる設定ファイルを手動で編集するか、WordPressのプラグインを使う必要がある
NGINXでは使えない(legoは使えるがツールで自動化されていない)NGINXでも使える(基本的にやることは一緒)

一目瞭然です。大量のコピペや、初心者さんが躓きがちな、設定ファイルの編集も一切しません(ツールがやってくれます)

ちなみに、AWS公式のチュートリアル記事は、Cerbotを使っている上、自動更新には触れていません。リダイレクトはプラグイン頼みです。試しにやってみましたが、慣れないうちは絶対に参考にしてはいけません!

検索して「Cerbot」って出てくるやつや、文中にvimとかbashとか出てくるやつも、分かる人orだめなときなんとかできる人前提です。

つかしゅう
つかしゅう

嘘だと思うなら、コマンドでviって入力したらいいよ

練習中
練習中

Vim は「練習中」です:q

Bitnami HTTPS Configuration Tool (bncert tool)の使い方

ちょっとその前に…(SSL化の大前提)

独自ドメインを設定している→SSL可には独自ドメインが必須です。
HTTP/HTTPS で普通に接続できる(もしできない場合SSL以前の問題です…)
✅ Let’s Encrypt に登録するメールアドレスがある→フリーメールで大丈夫ですが、証明書の更新にも使うので、ちゃんと使えるものを用意しましょう。

実際の手順

STEP 1. Lightsail インスタンスにSSHで接続する

コンソールからが手軽で良いです→インスタンス | Lightsail

STEP 2. 以下のコマンドを入力(コピペ)して実行!

sudo /opt/bitnami/bncert-tool
上記の画面が出たらおk。
アップデートを促されたら、”Y”を押して、もう一度実行しよう。

STEP 3. 「超簡単に」ドメインとリダイレクトの設定をする

ドメインの設定

Domains
Domain list []: サイトで使うドメインを入力(複数入力入力の場合は半角スペースで区切る)
    www.サブドメイン(www.example.netなど)は聞いてくれるので、入力しなくてもおk

リダイレクトの設定

Enable/disable redirections
Enable HTTP to HTTPS redirection [Y/n]: 常時SSL化のため、Y(Yes)
Enable non-www to www redirection [Y/n]: 例えば、example.net www.example.netへのリダイレクト
Enable www to non-www redirection [y/N]: 上記の逆。一方通行になるように選択すること

入力事項の確認をする

Changes to perform” (変更されるところ)をもう一度見ておこう。間違っていても、”Do you agree to these changes? [Y/n]: “で”N”を押せばドメイン入力からやり直せるので安心。
確認すべきところは以下のところ。

Changes to perform
  (中略)
4. Configure web server name to: 「サイトのドメイン」になっているか確認
5. Enable HTTP to HTTPS redirection: → "Enable" ならおk
6. 【注意】→ 選択によって異なるので、"(example: redirect"以降の部分をよく見てください

(参考画像)blog.tsukashu.netの場合

最後のDo you agree to these changes? [Y/n]:に”Y”で実行すると、設定のためサーバが止まります(設定が終われば自動で再起動します)
強制終了(接続を切るなど)しないようにしましょう

STEP 4. Let’s Encrypt の設定(メアドと確認のみ)

見ながらやっている人はあと一息です。読んでからやろうと思っている人は、この先はあっという間なのでご安心を。

メールアドレスを入力する

確認メールなどは届かないので、間違わないように入力しましょう。

その後、
“Do you agree to the Let’s Encrypt Subscriber Agreement? [Y/n]: “
と聞かれるので、”Y”を入力します。(同意しないと使えません)

Lets-Encrypt-lego

入力が終われば、あとは少し待つだけです。”Success“と表示されればお疲れさまです( ´∀`)bグッ!

  STEP 5. サイトを表示して確認する

ブラウザでサイトを開いてみましょう。リダイレクトされていることも確認できると思いますが、まずは証明書です。

例)Chrome
アドレス左側の鍵マークをクリックすると、「この接続は保護されています。」表示されると思います。
その下の「証明書(有効)」の部分をクリックすると更に詳しく確認できます。

lets-encrypt-certificates

また、リダイレクトが無事できているか、外部ツールもありますが手打ちで十分です。

  • ✅ http://サイトのドメイン
  • ✅ http://www.サイトのドメイン
  • https://サイトのドメイン
  • https://www.サイトのドメイン

以上4つすべてが、https://の同じドメインへリダイレクトされれば問題なしです。(他にも任意でリダイレクト設定している人は、個別で確認してください)

今回のまとめを三行で

Lightsail インスタンスにSSHで接続する

“sudo /opt/bitnami/bncert-tool” と入力

あとはツールにおまかせ簡単設定

練習中
練習中

三行は無理があるんじゃ…

つかしゅう
つかしゅう

簡潔に済ますときは産業っていう習慣です

詳細な補足

ここから先は備忘録含めて、細かい話と、トラブルシューティング的な内容を書いておきます。ここまででうまく行かなかった方や、興味のある方のみ読んでくださいm(_ _)m(随時追記予定)

bncert tool が入っていない環境の場合

 Bitnami 公式ドキュメントによると、2019-05-10以降のすべてのBitnami Stack(Bitnamiが提供しているアプリケーション郡)に含まれているそうです(参考リンク
ただし、時々「入っていなかった」という声も聞きますし、実際自分もそういう状況に遭遇しました。その場合の手順も公式ドキュメントに掲載されています。が、正直面食らいます…も少し簡便にならなかったのでしょうか。

もしも入っていなかった場合はこちら

bncert-toolRun The Bitnami HTTPS Configuration Tool (Bitnami)

wget -O bncert-linux-x64.run https://downloads.bitnami.com/files/bncert/latest/bncert-linux-x64.run
sudo mkdir /opt/bitnami/bncert
sudo mv bncert-linux-x64.run /opt/bitnami/bncert/
sudo chmod +x /opt/bitnami/bncert/bncert-linux-x64.run
sudo ln -s /opt/bitnami/bncert/bncert-linux-x64.run /opt/bitnami/bncert-tool

Let’s Encrypt (lego) Step 1: Install The Lego Client (Bitnami)

cd /tmp
curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i -
tar xf lego_vX.Y.Z_linux_amd64.tar.gz
sudo mkdir -p /opt/bitnami/letsencrypt
sudo mv lego /opt/bitnami/letsencrypt/lego

(※一行ずつ間違いなくに貼り付けてください。改行が入るとうまくいきません。) (※X.Y.Zにはlegoのバージョンが入ります。2020-01-10現在3.3.0。)

install-lego-script-ss2
install-lego-script-ss1


各種ログと、Crontabへの登録内容について

ログの場所はツールを最後まで実行すれば表示されます。具体的には、/tmp/bncert-YYYYMMDDhhmm.log
また、変更前の.confファイルがバックアップされているので問題があれば、SFTPで直接ファイルを入れ替えたほうが早いかもしれない。

cron(crontab)は、一般によく使われる、rootでのcrontab でなく、bitnamiユーザーでcrontabが実行されている。確認するだけなら、crontab -u bitnami -l(もしくは-lオプションのみ)で問題ない。ユーザーごとのcrontabは/var/spool/cron/crontabsにあるのを初めて知った。

cronによる更新は、最初の更新可能日(証明書失効の30日前)にすらなっていないので実際に動作するかは検証できなかったので、今月中にまた記事を更新したい。

あとづけ

全然ブログが更新できなくて、駆け足の記事になってしまいました。Cerbotについても自分なりに勉強しましたがlegoを使っているという点と、公式にバンドルされているという点で間違いなく便利なのでオススメしておきます。

ハシビ先輩
ハシビ先輩

ここらで基本に返ってWordPressの記事でも書いてみたらどうだ?

練習中
練習中

いいと思う、結構使い方覚えた反面気になるところも増えたし

つかしゅう
つかしゅう

さて、ようやく(夜の)コーヒー休憩だ☕

タイトルとURLをコピーしました