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 完了しました。