Certbot-nginx exibe erro

0

Após o comando executável sudo certbox --nginx. Certbot me dá saída

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.

Este é um último arquivo de log

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:

Ugh, eu uso Arch.

    
por Marceli99 31.07.2018 / 14:54

2 respostas

1

Na última vez que corri para isso, foi um erro com um caractere não-ASCII na configuração nginx padrão que o LetsEncrypt está tentando ler para poder adicionar sua própria configuração. O comando a seguir foi útil para localizar todos os caracteres não-ASCII (requer% GNUgrep para -P ):

grep -Rn --color='auto' -P "[\x80-\xFF]" /etc/nginx

Especificamente, dê uma olhada em / etc / nginx / sites-enabled / default. No sistema que acabei de verificar, é um comentário na linha 29 começando com # ssl_protocols e essa linha contém caracteres não-ASCII (o que é suposto ser o apóstrofo em "não" nessa linha) que está sufocando o LetsEncrypt configuração.

Você pode remover esses caracteres desse arquivo ou desabilitar a configuração padrão. Uma vez que não está na configuração principal do nginx, LetsEncrypt não deve mais ter esse erro.

    
por 13.08.2018 / 23:43
0

Parece que você tem um caractere aleatório em um dos arquivos nginx que o certbot não consegue ler. Talvez uma codificação de caracteres em um arquivo que não corresponda aos caracteres inseridos no documento. Ou um arquivo nginx corrompido.

Verifique todos os arquivos do servidor virtual listados em /etc/nginx/conf.d/ . Recrie cada arquivo com um editor de texto simples e salve os arquivos com a codificação usada / desejada.

    
por 13.08.2018 / 20:05

Tags