ブログ

さくらVPSにkusanagiを入れてLet’s Encryptで苦戦した話

当ブログはさくらVPSにkusanagiを突っ込んで運用していますが、
その設定の際にLet’s Encryptに苦戦して解決した話。なおシェルスクリプトを触るので自己責任で。

実行時の環境的は以下になります。

  • KUSANAGI 8.2.0
  • nginx 1.13.9
  • PHP7 7.2.3
  • MariaDB 10.1

Let’s Encryptのエラー発生

新規取得したVPSにkusanagiのOSを導入し、OSの基本的な初期設定を行い、
kusanagiでwordpressの設定を行って順調に進んでいる最中に起こった悲劇。

順調すぎて鼻歌まじりに俺天才じゃん?(違う)と思っていたら・・・

ERROR (゚Д゚)MU?

ぬぬぬ?SSL証明書発行でエラーが・・・?

とりあえず残りの処理を進めて一通り終わらせてからバトル開始。

色々設定なりを弄りながら、SSL証明書発行処理を行うも続くエラー。

ERROR …(゚Д゚)nununu?
ERROR …(゚Д゚)gununu?
ERROR …(゚Д゚)gugigi?

Excepton Error:Failed get a certificate:[429] Error creating new cert :: too many certificates already issued for exact set of domains: notabo.jp,www.notabo.jp: see https://letsencrypt.org/docs/rate-limits/
 
(゚Д゚)Σ howattu?
 

なんぞこれ?と思ったら、
rate-limitsとはLet’s Encryptの使用制限で、ひとつのドメインに対して証明書発行手続きの回数が多すぎると制限が掛かるエとの事、確かに1つのドメインを複数人で使ってて皆で発行してたらひどい事になるよな・・・週に20回やると引っ掛かるらしい。

原因と解決法

制限が解けるまでの間のしばらくLet’s Encryptのログ(/var/log/letsencrypt/letsencrypt.log)をじっくり調査した結果、www付きFQDNに対してkusanagiが勝手にwww無しで発行してエラー吐いている事に気づく。

今回はwww無しはwww有りに転送する予定なので現在中途半端に発行されているSSL証明書に対して、--expandオプションを使えば上手くいくのではないかと考え、kusanagiのSSL設定のシェルスクリプトファイル(/usr/lib/kusanagi/lib/ssl.sh)の151行目(環境によって行数は違うと思うので目安です)に

if ["renew" = "$OPT" ] ; then
	OPTION="--renew-by-default"
else
	OPTION="-m $MAILADDR --agree-tos --expand"
fi

のように--expandを追加し、kusanagi sslを実行したところ証明書の発行に成功しました!

 

・・・色々あーでもない、苦戦した・・・

 

ちなみに成功したletsencrypt.logには

2018-05-06 09:49:12,089:DEBUG:certbot.main:Arguments: ['--noninteractive', 
'--webroot', '-w', '/home/kusanagi/wordpress/DocumentRoot', 
'-d', 'notabo.jp', '-d', 'www.notabo.jp', 
'-m', '[メールアドレス]', '--agree-tos','--expand']

となっているので、これを参考に手動でcertbot-autoを行ってもいいかもしれません。
kusanagisslコマンドでは細かい調整は出来なさそうです。

 

終わりに

今回はwww有り、www無しともにドメインのAレコードに登録してあり、同一の物を表示(実際は301リダイレクトでwww有りへ)するためコレでうまくいきましたが、それぞれ別なものを表示する場合は違った対応が必要になると思います。

他に考えられる対応はrevokedeleterenewあたりのオプションで対応でしょうか?

なんか文章中にwwwだらけで草生えてるようだ・・・

3か月後に無事自動更新されるかなー?この記事が何かの参考になれば。

3か月後無事更新されてました!

これからkusanagiでのwordpressを導入する人に送る、ユーザーとパスワードの設定と使用頻度について。サーバ設定ソフトのkusanagiでwordpressを設定するにあたって、たくさんのユーザーやパスワードを設定しますが、それぞれのユー...