kusanagiのlet’s encryptでどうしてもudpateに失敗するのが解決した件

いやもうどう~~~しても一個だけUpdateできないドメインがあって難儀していたのが、ようやく解決した。

多分、全く同じようなエラーが発生する確率は非常に低いと思うが、だからこそ俺もググってもググっても真似できるような解決方法が見つからず苦労したので、ここに備忘録を上げておく。

あ。全く同じ現象はないにしても、原因はリダイレクトのミスだったので、
うまく行かなかったら、どこかで変なリダイレクトをしてhttps://yourdomain/.wel-knownに繋がらなくなっていないか、というのは確認しておいたほうがいいと思う。

[dacelo@space ~]$ sudo /usr/bin/kusanagi update cert
Challenge failed for domain dacelo.space

Attempting to renew cert (dacelo.space) from /etc/letsencrypt/renewal/dacelo.space.conf produced an unexpected error: Some challenges have failed.. Skipping.
All renewal attempts failed. The following certs could not be renewed:
/etc/letsencrypt/live/dacelo.space-0002/fullchain.pem (failure)
1 renew failure(s), 0 parse failure(s)
完了しました。

こんなふうに、どうしてもエラーになる。(更新を何度かやり直したので、-0002というサフィックスがつけられている)

藁にもすがる思いで、yum update、kusanagi updateなど、一通りのアップデートをしてみたがやっぱりダメ。(趣味サーバなので本番サーバでも稼働中にガツンとupdateしちまうんだぜ!)

仕方ないので、一度全てを削除してやり直すことにした。
/etc/letsencrypt/renewal/dacelo.space*
/etc/letsencrypt/archive/dacelo.space*
/etc/letsencrypt/live/dacelo.space*
など、一通りのファイルを退避させてから、kusanagiコマンドで証明書を新調することにした。

kusanagi target example.com
kusanagi ssl --email admin@example.com

ところがこれも失敗したのである。

[dacelo@space ~]$ sudo kusanagi ssl --email yuujimeister@gmail.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for dacelo.space
Using the webroot path /home/kusanagi/dacelo.space/DocumentRoot for all unmatched domains.
Waiting for verification...
Challenge failed for domain dacelo.space
http-01 challenge for dacelo.space
Cleaning up challenges
Some challenges have failed.

IMPORTANT NOTES:
- The following errors were reported by the server:

Domain: dacelo.space
Type:   connection
Detail: Fetching
htps://www.dacelo.space/.well-known/acme-challenge/va-8wp7Uw2UoudHUDuZ-gLxQXnf-qjP2AYPDfRUKCBg:
Invalid protocol scheme in redirect target. Only "http" and "https"
protocol schemes are supported, not "htps"

To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address. Additionally, please check that
your computer has a publicly routable IP address and that no
firewalls are preventing the server from communicating with the
client. If you're using the webroot plugin, you should also verify
that you are serving files from the webroot path you provided.
Cannot get Let\'s Encrypt SSL Certificate files.
失敗しました。

こんなエラーが出ている。注意深く読むと、.well-knownへのアクセスに失敗しているようだ。そのエラーメッセージが…
Invalid protocol scheme in redirect target. Only “http” and “https”
protocol schemes are supported, not “htps”
リダイレクトターゲットのプロトコルが不正です。httpもしくはhttpsのみがサポートされています。htpsではありません。

え、htps!? どうやら、どこかでURLのタイポをしていることがわかった。でも一体どこで…?
kusanagiのプロファイルかもしれない。いや、違う。kusanagiのprofileで設定するのはfqdnだけで、プロトコル部分は含まれない。

grepで/etc/nginx/conf.d/を検索した結果、判明。
先月、wwwなしからありのリダイレクトの記述を加えた(今更)ときに、タイプミスをしていた…。

server {
listen       443 ssl http2;
server_name  dacelo.space;
ssl_certificate     /etc/letsencrypt/live/dacelo.space/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/dacelo.space/privkey.pem;
return  301     htps://www.dacelo.space$request_uri;
}

ここかぁ~!
htpsのタイプミスをhttpsになおしてnginx再起動。めでたくrenewが通るようになりました。

広告

[dacelo@space ~]$ sudo kusanagi ssl --email dacelo@hogehoge
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Obtaining a new certificate
An unexpected error occurred:
There were too many requests of a given type :: Error creating new order :: too many failed authorizations recently: see https://letsencrypt.org/docs/rate-limits/
Please see the logfiles in /var/log/letsencrypt for more details.
証明書の自動更新は既に有効です。何もしません。
nginx/httpd の設定を変更し、再起動しました。
完了しました。

ただし、何度も何度もエラーを送り続けたので、letsencryptサーバから「too many failed」で弾かれてしまった。どんくらいでこのNG判定が回復するんだろう。

ひとまず、update certでのエラーメッセージは出なくなったので、様子見しよう。

[dacelo@space ~]$ sudo /usr/bin/kusanagi update cert                                                         
完了しました。

About: adminuser


Leave a Reply

Your email address will not be published. Required fields are marked *