ArchLinux (์ปค๋ 4.13.11-1)
ํฉ๋งจ -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;
}
}
}
ํ์คํ ์ฒ๋ฆฌํด์ผํ๋ฏ๋ก์ด ๋ฌธ์ ๋ฅผ ์ดํด ๋ณด ๊ฒ ์ง๋ง์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด server_tokens
์ง์๋ฌธ์ ์ฃผ์์์ ํฐ ๋ฐ์ดํ๋ฅผ ๋์ฒดํ์ญ์์ค : โServerโ
๋ฟก๋ฟก
2018-05-05 12 : 28 : 44,181 : DEBUG : certbot.main : certbot ๋ฒ์ : 0.22.2
2018-05-05 12 : 28 : 44,181 : DEBUG : certbot.main : ์ธ์ : [ '--nginx']
2018-05-05 12 : 28 : 44,181 : DEBUG : certbot.main : ๊ฒ์๋ ํ๋ฌ๊ทธ์ธ : PluginsRegistry (PluginEntryPoint # manual, PluginEntryPoint # nginx, PluginEntryPoint # null, PluginEntryPoint # standalone, PluginEntryPoint # webroot)
2018-05-05 12 : 28 : 44,193 : DEBUG : certbot.log : ๋ฃจํธ ๋ก๊น ์์ค์ด 20์ผ๋ก ์ค์ ๋จ
2018-05-05 12 : 28 : 44,193 : INFO : certbot.log : /var/log/letsencrypt/letsencrypt.log์ ๋๋ฒ๊ทธ ๋ก๊ทธ ์ ์ฅ
2018-05-05 12 : 28 : 44,194 : DEBUG : certbot.plugins.selection : ์์ฒญ ๋ ์ธ์ฆ ์ nginx ๋ฐ ์ค์น ํ๋ก๊ทธ๋จ nginx
2018-05-05 12 : 28 : 44,343 : DEBUG : certbot.log : ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ :
์ญ ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง) :
ํ์ผ "/ usr / bin / certbot", 11 ํ, in
load_entry_point ( 'certbot == 0.22.2', 'console_scripts', 'certbot') ()
ํ์ผ "/usr/lib/python3/dist-packages/certbot/main.py", ์ค 1266, ์ฃผ
return config.func (config, plugins)
ํ์ผ "/usr/lib/python3/dist-packages/certbot/main.py", 1018 ํ, ์คํ ์ค
์ค์น ํ๋ก๊ทธ๋จ, ์ธ์ฆ ์ = plug_sel.choose_configurator_plugins (config, plugins, "run")
choose_configurator_plugins์์๋ ํ์ผ "/usr/lib/python3/dist-packages/certbot/plugins/selection.py", 189 ํ
์ธ์ฆ ์ = ์ค์น ํ๋ก๊ทธ๋จ = pick_configurator (config, req_inst, plugins)
pick_configurator์ ํ์ผ "/usr/lib/python3/dist-packages/certbot/plugins/selection.py", 25 ํ
(interfaces.IAuthenticator, interfaces.IInstaller))
pick_plugin์์๋ ํ์ผ "/usr/lib/python3/dist-packages/certbot/plugins/selection.py", 77 ํ
Verified.prepare ()
ํ์ผ "/usr/lib/python3/dist-packages/certbot/plugins/disco.py", 245 ํ, ์ค๋น ์ค
return [six.itervalues โโ(self._plugins)์ plugin_ep์ ๋ํ plugin_ep.prepare ()]
ํ์ผ "/usr/lib/python3/dist-packages/certbot/plugins/disco.py", 245 ํ
return [six.itervalues โโ(self._plugins)์ plugin_ep์ ๋ํ plugin_ep.prepare ()]
์ค๋น์ค์ธ ํ์ผ "/usr/lib/python3/dist-packages/certbot/plugins/disco.py", 126 ํ
self._initialized.prepare ()
ํ์ผ "/usr/lib/python3/dist-packages/certbot_nginx/configurator.py", 137 ํ, ์ค๋น ์ค
self.parser = parser.NginxParser (self.conf ( 'server-root'))
__init__์์๋ ํ์ผ "/usr/lib/python3/dist-packages/certbot_nginx/parser.py", 38 ํ
self.load ()
ํ์ผ "/usr/lib/python3/dist-packages/certbot_nginx/parser.py", 45 ํ,๋ก๋ ์ค
self._parse_recursively (self.config_root)
ํ์ผ "/usr/lib/python3/dist-packages/certbot_nginx/parser.py", 66 ํ, _parse_recursively
self._parse_recursively (subentry [1])
ํ์ผ "/usr/lib/python3/dist-packages/certbot_nginx/parser.py", 56 ํ, _parse_recursively
๋๋ฌด = self._parse_files (filepath)
ํ์ผ "/usr/lib/python3/dist-packages/certbot_nginx/parser.py", 206 ํ, _parse_files
๊ตฌ๋ฌธ ๋ถ์ ๋จ = nginxparser.load (_file)
"/usr/lib/python3/dist-packages/certbot_nginx/nginxparser.py"ํ์ผ, 123 ํ,๋ก๋ ์ค
๋ฐํ ๋ถํ (_file.read ())
"/usr/lib/python3.4/encodings/ascii.py"ํ์ผ, 26 ํ, ๋์ฝ๋ฉ
return codecs.ascii_decode (input, self.errors) [0]
UnicodeDecodeError : 'ascii'์ฝ๋ฑ์ด 31 ๋ฒ ์์น์ 0xd1 ๋ฐ์ดํธ๋ฅผ ๋์ฝ๋ฉ ํ ์ ์์ต๋๋ค : ์ ์๊ฐ ๋ฒ์์ ์์ต๋๋ค (128).
2018-05-05 12 : 28 : 44,346 : ERROR : certbot.log : ์๊ธฐ์น ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์๋ฅผ ๋ค์ด MIME ์ ํ ํ์ผ์๋ ๋ค์ ํ์ด ํฌํจ๋ฉ๋๋ค.
application/vnd.geocube+xml g3 gยณ;
gยณ๋ 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]
์ถ๊ฐ ์ ๋ณด์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
@egberts ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ์ค๋ ๋์ ๋ํ ์ฃผ์์ ์ฝ์ ํ ๋ค์ ๋ช ๋ น์ ์คํํ์ต๋๋ค.
grep -r -P '[^\x00-\x7f]' /etc/apache2 /etc/letsencrypt /etc/nginx
์ด ๋ช ๋ น์ ์ฃผ์์ ํ .conf ํ์ผ์์ ๋ฌธ์ ๊ฐ๋๋ ๋ฌธ์ "ยด"๋ฅผ ์ฐพ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ ๊ฑฐํ๊ณ (์ํ๋๋๋ก ์ฃผ์์ ํธ์ง ํ ์ ์์) nginx๋ฅผ ๋ค์๋ก๋ํ๋ฉด ๋ชจ๋ ๊ฒ์ด ๋ค์ ์๋ํ์ต๋๋ค.
@TommyZG ๋ ์ด๋ค ํ์ผ์ ๋ณ๊ฒฝํ ์ ์์ต๋๊น?
Windows ์๊ฒฉ์์ certbot-auto๋ฅผ ์ฌ์ฉํ๋ฉด์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง๋ง Linux ์๊ฒฉ์์ ์ฌ์ฉํ๋ฉด ํ๋ฅญํ๊ฒ ์๋ํฉ๋๋ค.
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์๋ค. ๋ค์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๋ค (Ubuntu์์).
bash
sudo locale-gen "en_US.UTF-8"
sudo dpkg-reconfigure locales
LC_ALL="en_US.UTF-8"
ํ์ผ์ /etc/default/locale
.์คํ ํ cerbot --nginx
์ฑ๊ณต.
์๋ ํ์ธ์! ๊ทธ ์ด์ ๋ nginx ๊ตฌ์ฑ์ ASCII๊ฐ ์๋ ๋ฌธ์๊ฐ์๋ ๊ฒฝ์ฐ (์ฃผ์์๋ !!!) ์๋ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
# 5341์ PR์ด์๋ ์ค๋ณต # 5337์ ์ ํธํ์ฌ ๋ซ์ต๋๋ค.
@TommyZG ๋ ์ด๋ค ํ์ผ์ ๋ณ๊ฒฝํ ์ ์์ต๋๊น?
๋ด .conf ํ์ผ ์ค ํ๋์์์์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋์ด ์์ต๋๋ค. ์ฃผ์ ๋ผ์ธ์์์์ต๋๋ค.
๋น์ทํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. /etc/nginx/conf.d/default.conf 13 ~ 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.
๋๋ ๊ทธ ์ฃผ์์ ์ ๊ฑฐํ๊ณ ํจ๊ณผ๊ฐ ์์๋ค.
grep ํ์ ๋ํด @egberts & @TommyZG ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
Hy โ๐ป,
๋ค๋ฅธ ํฐ๋ฏธ๋ ๋ง ์ฌ์ฉํด์ผํฉ๋๋ค.
Mac ํฐ๋ฏธ๋์ ์ฌ์ฉํ๋ ๋์ Windows bash๋ฅผ ์ฌ์ฉํ์ฌ ์๋ํ๋ ๊ฒ๊ณผ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์๋ค. ๋ค์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๋ค (Ubuntu์์).
- ์ฝ์์์ ์คํ :
shell sudo locale-gen "en_US.UTF-8" sudo dpkg-reconfigure locales
- ๋ผ์ธ ์ถ๊ฐ
LC_ALL="en_US.UTF-8"
ํ์ผ์/etc/default/locale
.- SSH๋ฅผ ๋ค์ โโ์ฐ๊ฒฐํ์ญ์์ค.
์คํ ํ
cerbot --nginx
์ฑ๊ณต.
๊ณ ๋ง์์.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@egberts ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ์ค๋ ๋์ ๋ํ ์ฃผ์์ ์ฝ์ ํ ๋ค์ ๋ช ๋ น์ ์คํํ์ต๋๋ค.
grep -r -P '[^\x00-\x7f]' /etc/apache2 /etc/letsencrypt /etc/nginx
์ด ๋ช ๋ น์ ์ฃผ์์ ํ .conf ํ์ผ์์ ๋ฌธ์ ๊ฐ๋๋ ๋ฌธ์ "ยด"๋ฅผ ์ฐพ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ ๊ฑฐํ๊ณ (์ํ๋๋๋ก ์ฃผ์์ ํธ์ง ํ ์ ์์) nginx๋ฅผ ๋ค์๋ก๋ํ๋ฉด ๋ชจ๋ ๊ฒ์ด ๋ค์ ์๋ํ์ต๋๋ค.