nginx 1.18
certbot 0.31.
ubuntu 16.04
在服务器上安装了 certbot,一切都很好,证书一切正常。但是据我了解,该命令certbot renew --dry-run
给出了与 utf-8 编码相关的错误。
安慰:
:~# certbot renew --dry-run
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/junnote.com.ua.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Attempting to renew cert (junnote.com.ua) from /etc/letsencrypt/renewal/junnote.com.ua.conf produced an unexpected error: 'utf-8' codec can't decode byte 0xc4 in position 930: invalid continuation byte. Skipping.
All renewal attempts failed. The following certs could not be renewed:
/etc/letsencrypt/live/junnote.com.ua/fullchain.pem (failure)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates below have not been saved.)
All renewal attempts failed. The following certs could not be renewed:
/etc/letsencrypt/live/junnote.com.ua/fullchain.pem (failure)
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates above have not been saved.)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1 renew failure(s), 0 parse failure(s)
日志文件:
2020-05-23 21:22:23,290:DEBUG:certbot.main:certbot version: 0.31.0
2020-05-23 21:22:23,291:DEBUG:certbot.main:Arguments: ['--dry-run']
2020-05-23 21:22:23,292:DEBUG:certbot.main:Discovered plugins: PluginsRegistry(PluginEntryPoint#manual,PluginEntryPoint#nginx,PluginEntryPoint#null,PluginEntryPoint#standalone,PluginEntryPoint#webroot)
2020-05-23 21:22:23,305:DEBUG:certbot.log:Root logging level set at 20
2020-05-23 21:22:23,307:INFO:certbot.log:Saving debug log to /var/log/letsencrypt/letsencrypt.log
2020-05-23 21:22:23,321:DEBUG:certbot.plugins.selection:Requested authenticator <certbot.cli._Default object at 0x7f6e31335898> and installer <certbot.cli._Default object at 0x7f6e31335898>
2020-05-23 21:22:23,321:DEBUG:certbot.cli:Var dry_run=True (set by user).
2020-05-23 21:22:23,321:DEBUG:certbot.cli:Var server={'staging', 'dry_run'} (set by user).
2020-05-23 21:22:23,321:DEBUG:certbot.cli:Var dry_run=True (set by user).
2020-05-23 21:22:23,321:DEBUG:certbot.cli:Var server={'staging', 'dry_run'} (set by user).
2020-05-23 21:22:23,322:DEBUG:certbot.cli:Var account={'server'} (set by user).
2020-05-23 21:22:23,334:INFO:certbot.renewal:Cert not due for renewal, but simulating renewal for dry run
2020-05-23 21:22:23,335:DEBUG:certbot.plugins.selection:Requested authenticator nginx and installer nginx
2020-05-23 21:22:23,362:WARNING:certbot.renewal:Attempting to renew cert (junnote.com.ua) from /etc/letsencrypt/renewal/junnote.com.ua.conf produced an unexpected error: 'utf-8' codec can't decode byte 0xc4 in position 930: invalid continuation byte. Skipping.
2020-05-23 21:22:23,365:DEBUG:certbot.renewal:Traceback was:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/certbot/renewal.py", line 452, in handle_renewal_request
main.renew_cert(lineage_config, plugins, renewal_candidate)
File "/usr/lib/python3/dist-packages/certbot/main.py", line 1187, in renew_cert
installer, auth = plug_sel.choose_configurator_plugins(config, plugins, "certonly")
File "/usr/lib/python3/dist-packages/certbot/plugins/selection.py", line 228, in choose_configurator_plugins
installer = pick_installer(config, req_inst, plugins, installer_question)
File "/usr/lib/python3/dist-packages/certbot/plugins/selection.py", line 32, in pick_installer
config, default, plugins, question, (interfaces.IInstaller,))
File "/usr/lib/python3/dist-packages/certbot/plugins/selection.py", line 106, in pick_plugin
verified.prepare()
File "/usr/lib/python3/dist-packages/certbot/plugins/disco.py", line 251, in prepare
return [plugin_ep.prepare() for plugin_ep in six.itervalues(self._plugins)]
File "/usr/lib/python3/dist-packages/certbot/plugins/disco.py", line 251, in <listcomp>
return [plugin_ep.prepare() for plugin_ep in six.itervalues(self._plugins)]
File "/usr/lib/python3/dist-packages/certbot/plugins/disco.py", line 132, in prepare
self._initialized.prepare()
File "/usr/lib/python3/dist-packages/certbot_nginx/configurator.py", line 152, in prepare
self.parser = parser.NginxParser(self.conf('server-root'))
File "/usr/lib/python3/dist-packages/certbot_nginx/parser.py", line 38, in __init__
self.load()
File "/usr/lib/python3/dist-packages/certbot_nginx/parser.py", line 45, in load
self._parse_recursively(self.config_root)
File "/usr/lib/python3/dist-packages/certbot_nginx/parser.py", line 56, in _parse_recursively
trees = self._parse_files(filepath)
File "/usr/lib/python3/dist-packages/certbot_nginx/parser.py", line 207, in _parse_files
parsed = nginxparser.load(_file)
File "/usr/lib/python3/dist-packages/certbot_nginx/nginxparser.py", line 123, in load
return loads(_file.read())
File "/usr/lib/python3.5/codecs.py", line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc4 in position 930: invalid continuation byte
2020-05-23 21:22:23,365:ERROR:certbot.renewal:All renewal attempts failed. The following certs could not be renewed:
2020-05-23 21:22:23,365:ERROR:certbot.renewal: /etc/letsencrypt/live/junnote.com.ua/fullchain.pem (failure)
2020-05-23 21:22:23,366:DEBUG:certbot.log:Exiting abnormally:
Traceback (most recent call last):
File "/usr/bin/certbot", line 11, in <module>
load_entry_point('certbot==0.31.0', 'console_scripts', 'certbot')()
File "/usr/lib/python3/dist-packages/certbot/main.py", line 1365, in main
return config.func(config, plugins)
File "/usr/lib/python3/dist-packages/certbot/main.py", line 1272, in renew
renewal.handle_renewal_request(config)
File "/usr/lib/python3/dist-packages/certbot/renewal.py", line 477, in handle_renewal_request
len(renew_failures), len(parse_failures)))
certbot.errors.Error: 1 renew failure(s), 0 parse failure(s)
从配置文件中删除非 utf8 字符。特别是,显然,西里尔字母。
这就是你如何找到程序
0xc4
偶然发现一个字符的文件(如果用 cp1251 编码,那么这是一个字母Д
):