今回はお得ですよ、奥さん旦那さん!
こんにちは、つかしゅう(専業主夫七級←降級)です。
今回は、AWS Lighgsail、WordPress、Bitnamiなど限定のネタですがとっても便利でお得なお話です。なんと、ツール1つで、
- 常時SSL化(Let’s Encrypt の legoを使用)
- HTTPSへのリダイレクト(www.あり→wwwなしも同時に一緒にできる)
- 証明書の自動更新設定(cronジョブを設定してくれる)
の3役をこなしてくれます!

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

なんでエセ関西弁…
それでは、早速紹介していきましょう(≧∇≦)/
題して…
Lightsail でWordPress 常時SSL 化する一番簡単な方法(HTTPSリダイレクト設定付き)
こんな方にぜひ読んでほしい!
- これからAWS Lighgsail + WordPressで SSLの設定をしようとしている方
- 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

アップデートを促されたら、”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"以降の部分をよく見てください
STEP 4. Let’s Encrypt の設定(メアドと確認のみ)
見ながらやっている人はあと一息です。読んでからやろうと思っている人は、この先はあっという間なのでご安心を。
メールアドレスを入力する
確認メールなどは届かないので、間違わないように入力しましょう。
その後、
“Do you agree to the Let’s Encrypt Subscriber Agreement? [Y/n]: “
と聞かれるので、”Y”を入力します。(同意しないと使えません)

入力が終われば、あとは少し待つだけです。”Success“と表示されればお疲れさまです( ´∀`)bグッ!
STEP 5. サイトを表示して確認する
ブラウザでサイトを開いてみましょう。リダイレクトされていることも確認できると思いますが、まずは証明書です。
例)Chrome
アドレス左側の鍵マークをクリックすると、「この接続は保護されています。」表示されると思います。
その下の「証明書(有効)」の部分をクリックすると更に詳しく確認できます。

また、リダイレクトが無事できているか、外部ツールもありますが手打ちで十分です。
- ✅ 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。)


各種ログと、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の記事でも書いてみたらどうだ?

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

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