RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1130425
Accepted
Roman Onofreichuk
Roman Onofreichuk
Asked:2020-05-24 04:04:09 +0000 UTC2020-05-24 04:04:09 +0000 UTC 2020-05-24 04:04:09 +0000 UTC

无法使用 certbot 续订 SSL 证书

  • 772
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)
nginx
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    aleksandr barakin
    2020-05-24T05:11:05Z2020-05-24T05:11:05Z

    从配置文件中删除非 utf8 字符。特别是,显然,西里尔字母。

    这就是你如何找到程序0xc4偶然发现一个字符的文件(如果用 cp1251 编码,那么这是一个字母Д):

    $ LANG=C grep -lrP '\xc4' /etc/nginx
    
    • 2

相关问题

  • 配置 Nginx,proxy_pass 到子域

  • 防止网站在被 ip 点击时显示

  • 根据特定域启用/禁用 proxy_protocol

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5