LetsEncrypt рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП IP рдкрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЙрд╕ рддрд░реНрдХ рдХреЛ allow_domain рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди/рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп, LetsEncrypt рдХреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ IP рдкрддреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рд▓рд┐рдЦрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЬрд▓реНрджреА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
ssl_certificate (): рдСрдЯреЛ-рдПрд╕рдПрд╕рдПрд▓: рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдбреЛрдореЗрди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ (рдПрд╕рдПрдирдЖрдИ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ?) - рдлрд╝реЙрд▓рдмреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ -
рдЬрдм рдХреЛрдИ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд┐рд╕реА рдЖрдИрдкреА-рдкрддреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдПрд╕рдПрдирдЖрдИ-рд╣реЗрдбрд░ рдирд╣реАрдВ рднреЗрдЬрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП "рдбреЛрдореЗрди" рднреА рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдЕрдиреБрд░реЛрдз рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреНрдпреЛрдВ рднреЗрдЬ рд░рд╣рд╛ рдерд╛ рдЬреЛ рддрдм рдПрдХ рдЖрдИрдкреА рдХреЗ рд╕рд╛рде рдПрдХ рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рднреЗрдЬ рд░рд╣рд╛ рдерд╛: рдПрд╕
@discobean : рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реИ рдЬреЛ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдиреЗ рдЗрд╕реЗ рджреЗрдЦрд╛ рд╣реИ?
@GUI рдореБрдЭреЗ рдХрднреА-рдХрднреА рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ (рдЬреЛ рд╢рд╛рдпрдж рд╕реНрдХреИрдирд░ рдмреЙрдЯ рд╣реИрдВ) рд╣реЛрд╕реНрдЯ рд╣реЗрдбрд░ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
2018/02/20 02:10:44 [warn] 490#490: *2723 [lua] init_by_lua:11: allow_domain(): auto-ssl: debug allow_domain domain XXX.XXX.XX.XX, context: ssl_certificate_by_lua*, client: 107.170.236.113, server: 0.0.0.0:8443
2018/02/20 02:10:49 [error] 490#490: *2723 [lua] lets_encrypt.lua:41: issue_cert(): auto-ssl: dehydrated failed: env HOOK_SECRET=XXXXX HOOK_SERVER_PORT=8999 /usr/local/bin/resty-auto-ssl/dehydrated --cron --accept-terms --no-lock --domain XXX.XXX.XX.XX --challenge http-01 --config /etc/resty-auto-ssl/letsencrypt/config --hook /usr/local/bin/resty-auto-ssl/letsencrypt_hooks status: 256 out: # INFO: Using main config file /etc/resty-auto-ssl/letsencrypt/config
Processing XXX.XXX.XX.XX
+ Signing domains...
+ Creating new directory /etc/resty-auto-ssl/letsencrypt/certs/XXX.XXX.XX.XX ...
+ Generating private key...
+ Generating signing request...
+ Requesting authorization for XXX.XXX.XX.XX...
err: + ERROR: An error occurred while sending post-request to https://acme-v01.api.letsencrypt.org/acme/new-authz (Status 400)
Details:
{
"type": "urn:acme:error:malformed",
"detail": "Error creating new authz :: Issuance for IP addresses not supported",
"status": 400
}
, context: ssl_certificate_by_lua*, client: 107.170.236.113, server: 0.0.0.0:8443
2018/02/20 02:10:49 [error] 490#490: *2723 [lua] ssl_certificate.lua:97: issue_cert(): auto-ssl: issuing new certificate failed: dehydrated failure, context: ssl_certificate_by_lua*, client: 107.170.236.113, server: 0.0.0.0:8443
2018/02/20 02:10:49 [error] 490#490: *2723 [lua] ssl_certificate.lua:286: auto-ssl: could not get certificate for XXX.XXX.XX.XX - using fallback - failed to get or issue certificate, context: ssl_certificate_by_lua*, client: 107.170.236.113, server: 0.0.0.0:8443
рдЬрд╣рд╛рдВ XXX.XXX.XX.XX
рд╣рдорд╛рд░рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд░реНрд╡рд░ рдЖрдИрдкреА рдкрддрд╛ рд╣реИ
рдореИрдВ рдХреЛрдб рдореЗрдВ рдЗрд╕реЗ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реВрдВ, рд▓реЗрдХрд┐рди, рдПрд╣: рдЖрдкрдХрд╛ allow_domain() рдЪрд╛рд╣рд┐рдП _only_ FQDN рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ рдХрд┐ рдЖрдк "рдЗрдирдХреЗ рд▓рд┐рдП рдирд╣реАрдВ" (рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ рджреГрд╖реНрдЯрд┐рдХреЛрдг) рдХреЗ рд╡рд┐рдкрд░реАрдд (рд╢реНрд╡реЗрддрд╕реВрдЪреА рджреГрд╖реНрдЯрд┐рдХреЛрдг) рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЖрдкрдХреЛ рдХреЗрд╡рд▓ allow_domain() рдореЗрдВ рдХреЗрд╡рд▓ "рд╡рд╛рдкрд╕реА рд╕рд╣реА" рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рджрдмрд╛рд╡ рдбрд╛рд▓рддрд╛ рд╣реИ рдФрд░ LE рдХреА рдУрд░ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЛ рдЬрдорд╛ рдХрд░рддрд╛ рд╣реИред
рд╣рдо рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рдХрджрдо рдЖрдЧреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рд╣рдо рдЕрдкрдиреЗ рд╕рднреА рд╡реЗрдмрд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд▓реБрдЖ рдЯреЗрдмрд▓ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ nginx рдХреЗ рдЕрдВрджрд░ рдПрдХ SHM рдХреБрдВрдЬреА/рдореВрд▓реНрдп рд╕реНрдЯреЛрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдЬрд╛рдВрдЪ рд╕рдХреЗрдВ рдХрд┐ рд╣рдореЗрдВ рдХреМрди рд╕реЗ рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред
рд╣рдорд╛рд░реЗ рдкреНрд░рдмрдВрдзрди рд╣реЛрд╕реНрдЯрдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рдВрдмрдВрдзрд┐рдд рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдПрд╕рдПрд╕рдПрд▓ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рд╛рде рдЬрд▓реНрджреА рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдо рдЖрдИрдкреА-рдПрдбреНрд░реЗрд╕ рдФрд░ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдкрд░ рдЬрд▓реНрджреА рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВред рдФрд░ рдлрд┐рд░ рдЕрдВрдд рдореЗрдВ рд╣рдо рдбреАрдПрдирдПрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреНрдпрд╛ рдирд╛рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдбреЛрдореЗрди рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдЗрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрддрд░ рдЪреЗрдХ рдХреЗрд╡рд▓ рд╕рдордп рдкрд░ рдЬреАрдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИрдВред рдмрд┐рдВрджреБ рдЬрд╛ рд░рд╣рд╛ рд╣реИ: рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ рдХреЗ рдмрдЬрд╛рдп рд╢реНрд╡реЗрддрд╕реВрдЪреА рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рдЕрднреНрдпрд╛рд╕ рднреА рд╣реИред рдорд╛рдлреА рд╕реЗ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рддред
рдФрд░ рдХрднреА-рдХрднреА рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдУрд╡рд░-рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рди рдХрд░реЗрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдЬрд╛рдВрдЪреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рдЬреЛ рдХрд┐ рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдПрдХ рдФрд░ рдмрд┐рдВрджреБ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ :) рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрддреНрдпрдзрд┐рдХ рдЧрддрд┐рд╢реАрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИред
рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рд▓реБрдЖ-рд░реЗрд╕реНрдЯреА-рдСрдЯреЛ-рдПрд╕рдПрд╕рдПрд▓ рдореЗрдВ рдЕрд╡рд░реБрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдЧрд░ рдХреЛрдИ рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдареЛрдХрд░ рдЦрд╛рддрд╛ рд╣реИ рддреЛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдЬреЛ рдорд┐рд▓рд╛ рд╣реИ рдЙрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ред
allow_domain
рдореЗрдВ рддреНрд╡рд░рд┐рдд рд╣реИрдХ:
local ip_chunks = {domain:match("(%d+)%.(%d+)%.(%d+)%.(%d+)")}
if (#ip_chunks == 4) then
return false
end
рд╢реНрд╡реЗрддрд╕реВрдЪреАрдХрд░рдг рдЕрддрд┐-рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЗрд╕реЗ рд╕рд╣реА рдХрд░ рд░рд╣рд╛ рд╣реИред рджреБрдирд┐рдпрд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕реБрд░рдХреНрд╖рд╛ рдШрдЯрдирд╛рдПрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдХреЗ рдмрдЬрд╛рдп рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рджреВрд░ рд╕реЗ рднреА рдЕрдЬреАрдм рдирд╣реАрдВ рд╣реИред
рдЖрдкрдХрд╛ рдЪреЗрдХ IPv6-рдкрддреЛрдВ рдХреЛ рднреА рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрддрд┐-рдЗрдВрдЬреАрдирд┐рдпрд░реНрдб рд╣реИ:
if string.match(domain, "(%d+).(%d+).(%d+).(%d+)") or string.find(domain, ":", 1, true) then
return false
end
рдЖрдк рд╣рдорд╛рд░реА рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рдиреНрдпрд╛рдп рдХрд░рддреЗ рд╣реИрдВред рд╕рдордЭ рдЧрдпрд╛ред
рдЖрдк рд╢рд╛рдпрдж рдПрдХ рдкреАрдЖрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ allow_domain
рдХреЛ README.md рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╕рднреА рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП true
рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╕рдордЭрджрд╛рд░ рд╣реЛ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╢реНрд╡реЗрддрд╕реВрдЪреАрдХрд░рдг рдЕрддрд┐-рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЗрд╕реЗ рд╕рд╣реА рдХрд░ рд░рд╣рд╛ рд╣реИред рджреБрдирд┐рдпрд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕реБрд░рдХреНрд╖рд╛ рдШрдЯрдирд╛рдПрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдХреЗ рдмрдЬрд╛рдп рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рджреВрд░ рд╕реЗ рднреА рдЕрдЬреАрдм рдирд╣реАрдВ рд╣реИред
рдЖрдкрдХрд╛ рдЪреЗрдХ IPv6-рдкрддреЛрдВ рдХреЛ рднреА рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрддрд┐-рдЗрдВрдЬреАрдирд┐рдпрд░реНрдб рд╣реИ: