我在let-encrypt certbot上遇到一个奇怪的错误,这似乎与我的第二个域名中存在破折号有关(在真实的一个位置8对应于所述破折号的位置)。
无论我尝试续订还是创建新证书,都会发生错误。原始(functionnal)证书是使用certbot no pb ...
生成的./certbot-auto certonly --nginx -d domain1 -d domain2
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Cert is due for renewal, auto-renewing...
Renewing an existing certificate
Performing the following challenges:
tls-sni-01 challenge for domain1
tls-sni-01 challenge for domain-2
Cleaning up challenges
An unexpected error occurred:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 8: ordinal not in range(128)
我可以从这里做些什么?
答案 0 :(得分:1)
应该注意,这也可能是由于使用非ASCII语言环境来编辑Web服务器配置文件而导致的,但是certbot cron作业没有执行此操作,从而导致自动更新尝试失败。
同样,从网络服务器配置文件include
提取的任何文件都由certbot解析,因此可能有必要在典型目录之外进行检查。
答案 1 :(得分:0)
我在该文件中有一个非ascii字符,这些问题的有用命令是:
grep -nRP '[\x80-\xFF]' /etc/nginx
其中/etc/nginx
是您要查找非ascii字符的目录/文件。而[\x80-\xFF]
是您想要查找的范围(在本例中为非ascii)。
答案 2 :(得分:0)
使用以下命令:
grep -r -P '[^\x00-\x7f]' /etc/apache2 /etc/letsencrypt /etc/nginx
发现了我的
/etc/letsencrypt/options-ssl-nginx.conf: # The following CSP directives don't use default-src as
使用shed
,我发现了有问题的序列。原来是编辑器错误。
00008099: C2 194 302 11000010
00008100: A0 160 240 10100000
00008101: d 64 100 144 01100100
00008102: e 65 101 145 01100101
00008103: f 66 102 146 01100110
00008104: a 61 097 141 01100001
00008105: u 75 117 165 01110101
00008106: l 6C 108 154 01101100
00008107: t 74 116 164 01110100
00008108: - 2D 045 055 00101101
00008109: s 73 115 163 01110011
00008110: r 72 114 162 01110010
00008111: c 63 099 143 01100011
00008112: C2 194 302 11000010
00008113: A0 160 240 10100000
我使用编辑器(即vim
)删除了有问题的字节序列。