sudo certbox --nginx コマンドを実行した後。 Certbotは私に出力を与えます
Saving debug log to /var/log/letsencrypt/letsencrypt.log
An unexpected error occurred:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 10453: ordinal not in range(128)
Please see the logfiles in /var/log/letsencrypt for more details.
最後のログファイルです
2018-07-31 14:43:08,904:DEBUG:certbot.main:certbot version: 0.25.1
2018-07-31 14:43:08,905:DEBUG:certbot.main:Arguments: ['--nginx']
2018-07-31 14:43:08,906:DEBUG:certbot.main:Discovered plugins: PluginsRegistry(PluginEntryPoint#manual,PluginEntryPoint#nginx,PluginEntryPoint#null,PluginEntryPoint#standalone,PluginEntryPoint#webroot)
2018-07-31 14:43:08,918:DEBUG:certbot.log:Root logging level set at 20
2018-07-31 14:43:08,919:INFO:certbot.log:Saving debug log to /var/log/letsencrypt/letsencrypt.log
2018-07-31 14:43:08,920:DEBUG:certbot.plugins.selection:Requested authenticator nginx and installer nginx
2018-07-31 14:43:08,967:DEBUG:certbot.log:Exiting abnormally:
Traceback (most recent call last):
File "/usr/bin/certbot", line 11, in <module>
load_entry_point('certbot==0.25.1', 'console_scripts', 'certbot')()
File "/usr/lib/python3.6/site-packages/certbot/main.py", line 1323, in main
return config.func(config, plugins)
File "/usr/lib/python3.6/site-packages/certbot/main.py", line 1073, in run
installer, authenticator = plug_sel.choose_configurator_plugins(config, plugins, "run")
File "/usr/lib/python3.6/site-packages/certbot/plugins/selection.py", line 195, in choose_configurator_plugins
authenticator = installer = pick_configurator(config, req_inst, plugins)
File "/usr/lib/python3.6/site-packages/certbot/plugins/selection.py", line 25, in pick_configurator
(interfaces.IAuthenticator, interfaces.IInstaller))
File "/usr/lib/python3.6/site-packages/certbot/plugins/selection.py", line 77, in pick_plugin
verified.prepare()
File "/usr/lib/python3.6/site-packages/certbot/plugins/disco.py", line 246, in prepare
return [plugin_ep.prepare() for plugin_ep in six.itervalues(self._plugins)]
File "/usr/lib/python3.6/site-packages/certbot/plugins/disco.py", line 246, in <listcomp>
return [plugin_ep.prepare() for plugin_ep in six.itervalues(self._plugins)]
File "/usr/lib/python3.6/site-packages/certbot/plugins/disco.py", line 127, in prepare
self._initialized.prepare()
File "/usr/lib/python3.6/site-packages/certbot_nginx/configurator.py", line 144, in prepare
self.parser = parser.NginxParser(self.conf('server-root'))
File "/usr/lib/python3.6/site-packages/certbot_nginx/parser.py", line 38, in __init__
self.load()
File "/usr/lib/python3.6/site-packages/certbot_nginx/parser.py", line 45, in load
self._parse_recursively(self.config_root)
File "/usr/lib/python3.6/site-packages/certbot_nginx/parser.py", line 66, in _parse_recursively
self._parse_recursively(subentry[1])
File "/usr/lib/python3.6/site-packages/certbot_nginx/parser.py", line 56, in _parse_recursively
trees = self._parse_files(filepath)
File "/usr/lib/python3.6/site-packages/certbot_nginx/parser.py", line 207, in _parse_files
parsed = nginxparser.load(_file)
File "/usr/lib/python3.6/site-packages/certbot_nginx/nginxparser.py", line 123, in load
return loads(_file.read())
File "/usr/lib/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 10453: ordinal not in range(128)
2018-07-31 14:43:08,969:ERROR:certbot.log:An unexpected error occurred:
ああ、私はアーチを使います。
答え1
最後に、この問題が発生したときに、LetsEncryptは自分自身を追加できるように、デフォルトのnginx設定からASCII以外の文字を読み取ろうとしました。次のコマンドは、ASCII以外のすべての文字を見つけるのに役立ちます(GNUが必要ですgrep
)-P
。
grep -Rn --color='auto' -P "[\x80-\xFF]" /etc/nginx
具体的には/etc/nginx/sites-enabled/default.confをよく見てください。チェックしたばかりのシステムでは、行29はコメントで始まり、# ssl_protocols
その行にはLetsEncryptが設定されないようにする非ASCII文字(「しないでください」行にアポストロフィでなければなりません)が含まれています。
ファイルからこれらの文字を削除したり、デフォルト設定を無効にしたりできます。 LetsEncrypt は、既定の nginx 構成にない場合、このエラーを表示しなくなります。
答え2
nginxファイルの1つにcertbotが読み込めないランダムな文字があるようです。ファイルの文字エンコードが文書に入力された文字と一致しない可能性があります。または、nginxファイルが破損しています。
にリストされているすべての仮想サーバーファイルを確認してください/etc/nginx/conf.d/
。プレーンテキストエディタを使用して各ファイルを再作成し、使用または予想されるエンコーディングでファイルを保存します。