ArchLinux (Kernel 4.13.11-1)
pacman -S cerbot-nginx
cerbot --nginx
Saving debug log to /var/log/letsencrypt/letsencrypt.log
An unexpected error occurred:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 330: ordinal not in range(128)
Please see the logfiles in /var/log/letsencrypt for more details.
2017-11-12 15:15:18,497:DEBUG:certbot.main:certbot version: 0.19.0
2017-11-12 15:15:18,499:DEBUG:certbot.main:Arguments: ['--nginx']
2017-11-12 15:15:18,500:DEBUG:certbot.main:Discovered plugins: PluginsRegistry(PluginEntryPoint#manual,PluginEntryPoint#nginx,PluginEntryPoint#null,PluginEntryPoint#standalone,PluginEntryPoint#webroot)
2017-11-12 15:15:18,529:DEBUG:certbot.log:Root logging level set at 20
2017-11-12 15:15:18,531:INFO:certbot.log:Saving debug log to /var/log/letsencrypt/letsencrypt.log
2017-11-12 15:15:18,532:DEBUG:certbot.plugins.selection:Requested authenticator nginx and installer nginx
2017-11-12 15:15:18,557:DEBUG:certbot.log:Exiting abnormally:
Traceback (most recent call last):
File "/usr/bin/certbot", line 11, in <module>
load_entry_point('certbot==0.19.0', 'console_scripts', 'certbot')()
File "/usr/lib/python3.6/site-packages/certbot/main.py", line 861, in main
return config.func(config, plugins)
File "/usr/lib/python3.6/site-packages/certbot/main.py", line 685, in run
installer, authenticator = plug_sel.choose_configurator_plugins(config, plugins, "run")
File "/usr/lib/python3.6/site-packages/certbot/plugins/selection.py", line 189, 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 248, 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 248, 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 130, in prepare
self._initialized.prepare()
File "/usr/lib/python3.6/site-packages/certbot_nginx/configurator.py", line 156, in prepare
self.parser = parser.NginxParser(self.conf('server-root'))
File "/usr/lib/python3.6/site-packages/certbot_nginx/parser.py", line 35, in __init__
self.load()
File "/usr/lib/python3.6/site-packages/certbot_nginx/parser.py", line 42, in load
self._parse_recursively(self.config_root)
File "/usr/lib/python3.6/site-packages/certbot_nginx/parser.py", line 53, in _parse_recursively
trees = self._parse_files(filepath)
File "/usr/lib/python3.6/site-packages/certbot_nginx/parser.py", line 203, in _parse_files
parsed = nginxparser.load(_file)
File "/usr/lib/python3.6/site-packages/certbot_nginx/nginxparser.py", line 122, 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 0xe2 in position 330: ordinal not in range(128)
2017-11-12 15:15:18,560:ERROR:certbot.log:An unexpected error occurred:
user http;
worker_processes auto;
worker_cpu_affinity auto;
pcre_jit on;
events {
worker_connections 2048;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
aio threads;
server_tokens off; # Security: Disables nginx version in error messages and in the “Server” response header field.
charset utf-8; # Force usage of UTF-8
index index.php index.html index.htm;
server {
listen 80;
listen [::]:80;
server_name domain.tld;
root /usr/share/nginx/html;
location / {
index index.htm index.html;
}
# ACME challenge
location ^~ /.well-known/acme-challenge/ {
default_type "text/plain";
root /var/lib/letsencrypt;
}
}
}
Kami akan melihat ini, karena ini pasti sesuatu yang harus kami tangani, tetapi untuk mengatasinya, ganti tanda kutip ganda di komentar server_tokens
directive: “Server”
@jooi
05-05-2018 12: 28: 44,181: DEBUG: certbot.main : versi certbot: 0.22.2
05-05 2018 12: 28: 44,181: DEBUG: certbot.main : Argumen: ['--nginx']
05-05-2018 12: 28: 44,181: DEBUG: certbot.main : Plugin yang ditemukan: PluginsRegistry (PluginEntryPoint # manual, PluginEntryPoint # nginx, PluginEntryPoint # null, PluginEntryPoint # standalone, PluginEntryPoint # webroot)
05-05 2018 12: 28: 44,193: DEBUG: certbot.log : Level logging root disetel ke 20
05-05 2018 12: 28: 44,193: INFO: certbot.log : Menyimpan log debug ke /var/log/letsencrypt/letsencrypt.log
05-05-2018 12: 28: 44,194: DEBUG: certbot.plugins.selection : Meminta
05-05 2018 12: 28: 44,343: DEBUG: certbot.log : Keluar secara tidak normal:
Traceback (panggilan terakhir terakhir):
File "/ usr / bin / certbot", baris 11, dalam
load_entry_point ('certbot == 0.22.2', 'console_scripts', 'certbot') ()
File "/usr/lib/python3/dist-packages/certbot/main.py", baris 1266, di main
kembali config.func (config, plugins)
File "/usr/lib/python3/dist-packages/certbot/main.py", baris 1018, sedang dijalankan
installer, authenticator = plug_sel.choose_configurator_plugins (config, plugins, "run")
File "/usr/lib/python3/dist-packages/certbot/plugins/selection.py", baris 189, di choose_configurator_plugins
authenticator = installer = pick_configurator (config, req_inst, plugin)
File "/usr/lib/python3/dist-packages/certbot/plugins/selection.py", baris 25, di pick_configurator
(interfaces.IAuthenticator, interfaces.IInstaller))
File "/usr/lib/python3/dist-packages/certbot/plugins/selection.py", baris 77, di pick_plugin
diverifikasi.prepare ()
File "/usr/lib/python3/dist-packages/certbot/plugins/disco.py", baris 245, dalam persiapan
kembalikan [plugin_ep.prepare () untuk plugin_ep di six.itervalues (self._plugins)]
File "/usr/lib/python3/dist-packages/certbot/plugins/disco.py", baris 245, di
kembalikan [plugin_ep.prepare () untuk plugin_ep di six.itervalues (self._plugins)]
File "/usr/lib/python3/dist-packages/certbot/plugins/disco.py", baris 126, dalam persiapan
self._initialized.prepare ()
File "/usr/lib/python3/dist-packages/certbot_nginx/configurator.py", baris 137, dalam persiapan
self.parser = parser.NginxParser (self.conf ('server-root'))
File "/usr/lib/python3/dist-packages/certbot_nginx/parser.py", baris 38, di __init__
self.load ()
File "/usr/lib/python3/dist-packages/certbot_nginx/parser.py", baris 45, sedang dimuat
self._parse_recursively (self.config_root)
File "/usr/lib/python3/dist-packages/certbot_nginx/parser.py", baris 66, dalam _parse_recursively
self._parse_recursively (entri sub-entri [1])
File "/usr/lib/python3/dist-packages/certbot_nginx/parser.py", baris 56, dalam _parse_recursively
pohon = self._parse_files (filepath)
File "/usr/lib/python3/dist-packages/certbot_nginx/parser.py", baris 206, di _parse_files
parsed = nginxparser.load (_file)
File "/usr/lib/python3/dist-packages/certbot_nginx/nginxparser.py", baris 123, sedang dimuat
beban kembali (_file.read ())
File "/usr/lib/python3.4/encodings/ascii.py", baris 26, dalam decode
mengembalikan codecs.ascii_decode (masukan, kesalahan sendiri) [0]
UnicodeDecodeError: codec 'ascii' tidak dapat mendekode byte 0xd1 di posisi 31: ordinal tidak dalam jangkauan (128)
05-05 2018 12: 28: 44,346: ERROR: certbot.log : Terjadi kesalahan yang tidak terduga:
Misalnya, file jenis mime berisi baris ini:
application/vnd.geocube+xml g3 g³;
g³ akan memunculkan UnicodeDecodeError
> /usr/lib/python3.6/site-packages/certbot_nginx/parser.py(62)_parse_recursively()
-> elif entry[0] == ['http'] or entry[0] == ['server']:
(Pdb) l
57 for tree in trees:
58 for entry in tree:
59 if _is_include_directive(entry):
60 # Parse the top-level included file
61 self._parse_recursively(entry[1])
62 -> elif entry[0] == ['http'] or entry[0] == ['server']:
63 # Look for includes in the top-level 'http'/'server' context
64 for subentry in entry[1]:
65 if _is_include_directive(subentry):
66 self._parse_recursively(subentry[1])
67 elif entry[0] == ['http'] and subentry[0] == ['server']:
(Pdb) n
> /usr/lib/python3.6/site-packages/certbot_nginx/parser.py(64)_parse_recursively()
-> for subentry in entry[1]:
(Pdb) n
> /usr/lib/python3.6/site-packages/certbot_nginx/parser.py(65)_parse_recursively()
-> if _is_include_directive(subentry):
(Pdb) subentry
['include', 'mime.types']
(Pdb) n
> /usr/lib/python3.6/site-packages/certbot_nginx/parser.py(66)_parse_recursively()
-> self._parse_recursively(subentry[1])
(Pdb) s
--Call--
> /usr/lib/python3.6/site-packages/certbot_nginx/parser.py(47)_parse_recursively()
-> def _parse_recursively(self, filepath):
(Pdb) n
> /usr/lib/python3.6/site-packages/certbot_nginx/parser.py(55)_parse_recursively()
-> filepath = self.abs_path(filepath)
(Pdb) n
> /usr/lib/python3.6/site-packages/certbot_nginx/parser.py(56)_parse_recursively()
-> trees = self._parse_files(filepath)
(Pdb) s
--Call--
> /usr/lib/python3.6/site-packages/certbot_nginx/parser.py(189)_parse_files()
-> def _parse_files(self, filepath, override=False):
(Pdb) n
> /usr/lib/python3.6/site-packages/certbot_nginx/parser.py(198)_parse_files()
-> files = glob.glob(filepath) # nginx on unix calls glob(3) for this
(Pdb) n
> /usr/lib/python3.6/site-packages/certbot_nginx/parser.py(201)_parse_files()
-> trees = []
(Pdb) n
> /usr/lib/python3.6/site-packages/certbot_nginx/parser.py(202)_parse_files()
-> for item in files:
(Pdb) n
> /usr/lib/python3.6/site-packages/certbot_nginx/parser.py(203)_parse_files()
-> if item in self.parsed and not override:
(Pdb) n
> /usr/lib/python3.6/site-packages/certbot_nginx/parser.py(205)_parse_files()
-> try:
(Pdb) n
> /usr/lib/python3.6/site-packages/certbot_nginx/parser.py(206)_parse_files()
-> with open(item) as _file:
(Pdb) n
> /usr/lib/python3.6/site-packages/certbot_nginx/parser.py(207)_parse_files()
-> parsed = nginxparser.load(_file)
(Pdb) s
--Call--
> /usr/lib/python3.6/site-packages/certbot_nginx/nginxparser.py(115)load()
-> def load(_file):
(Pdb) n
> /usr/lib/python3.6/site-packages/certbot_nginx/nginxparser.py(123)load()
-> return loads(_file.read())
(Pdb) loads
<function loads at 0x7faacac85048>
(Pdb) s
--Call--
> /usr/lib/python3.6/encodings/ascii.py(25)decode()
-> def decode(self, input, final=False):
(Pdb) --KeyboardInterrupt--
(Pdb) n
> /usr/lib/python3.6/encodings/ascii.py(26)decode()
-> return codecs.ascii_decode(input, self.errors)[0]
(Pdb) n
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 10453: ordinal not in range(128)
> /usr/lib/python3.6/encodings/ascii.py(26)decode()
-> return codecs.ascii_decode(input, self.errors)[0]
Terima kasih atas informasi tambahannya!
Setelah membaca komentar di utas lain oleh pengguna @egberts , saya menjalankan perintah berikut:
grep -r -P '[^\x00-\x7f]' /etc/apache2 /etc/letsencrypt /etc/nginx
Perintah itu menemukan karakter yang melanggar "´" dalam satu file .conf di komentar. Setelah menghapusnya (Anda dapat mengedit komentar sesuai keinginan) dan memuat ulang nginx, semuanya berfungsi kembali.
@TommyZG dapatkah kamu memberitahu saya mengubah file yang mana?
Saya menemukan bahwa ketika saya menggunakan certbot-auto di remote windows, itu membuat saya kesalahan ini, tetapi ketika saya menggunakannya di remote linux, itu berfungsi dengan baik
Saya memiliki masalah yang sama. Saya telah menemukan solusi berikut (di Ubuntu):
bash
sudo locale-gen "en_US.UTF-8"
sudo dpkg-reconfigure locales
LC_ALL="en_US.UTF-8"
ke file /etc/default/locale
.Setelah melakukannya, menjalankan cerbot --nginx
sukses.
Hai! Alasannya adalah jika Anda memiliki beberapa huruf non ascii di konfigurasi nginx (bahkan di komentar !!!) itu tidak akan berfungsi.
Menutup demi duplikat # 5337, yang memiliki PR di # 5341.
@TommyZG dapatkah kamu memberitahu saya mengubah file yang mana?
Itu ada di salah satu file .conf saya. Anda memiliki orang lain. Itu ada di baris komentar.
Saya mendapat masalah serupa, itu di /etc/nginx/conf.d/default.conf baris 13 hingga 17:
# 1) limit_req ^`^s to limit the rate of requests from one IP
# 2) limit_conn ^`^s to limit the number of connections from one IP
# 3) client_body_timeout ^`^s to close the connections with slow body
# 4) client_header_timeout ^`^s to close the connections with slow headers
# 5) send_timeout ^`^s If the client does not receive anything within this time, the connection is closed.
Saya menghapus komentar itu dan berhasil.
Terima kasih @egberts & @TommyZG atas tip
Hy ✌🏻,
Anda sebaiknya hanya menggunakan terminal lain.
Saya memiliki masalah yang sama saat menggunakan terminal mac, daripada saya menggunakan windows bash untuk membuatnya berfungsi.
Saya memiliki masalah yang sama. Saya telah menemukan solusi berikut (di Ubuntu):
- Jalankan di konsol:
shell sudo locale-gen "en_US.UTF-8" sudo dpkg-reconfigure locales
- Tambahkan baris
LC_ALL="en_US.UTF-8"
ke file/etc/default/locale
.- Hubungkan kembali SSH.
Setelah melakukannya, menjalankan
cerbot --nginx
sukses.
Terima kasih, ini berhasil untuk saya.
Komentar yang paling membantu
Setelah membaca komentar di utas lain oleh pengguna @egberts , saya menjalankan perintah berikut:
grep -r -P '[^\x00-\x7f]' /etc/apache2 /etc/letsencrypt /etc/nginx
Perintah itu menemukan karakter yang melanggar "´" dalam satu file .conf di komentar. Setelah menghapusnya (Anda dapat mengedit komentar sesuai keinginan) dan memuat ulang nginx, semuanya berfungsi kembali.