рдореИрдВрдиреЗ рдиреАрдЪреЗ luarox рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ lua-resty-auto-ssl рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ:
sudo luarocks install lua-resty-auto-ssl
рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдирд┐рд░реНрдЬрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг 0.5.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рддреНрдпрд╛рдкрди рдХреЗ рджреМрд░рд╛рди рд▓реЗрдЯрд╕реЗрдирдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд░рд┐рдкреНрд▓реЗ-рдиреЙрди рд╣реЗрдбрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрдЧ рд╣реИред рдореБрдЭреЗ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдЬрд▓рд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛!
рдХреНрдпрд╛ рд╣рдо рд▓реБрдЖрд░реЛрдХреНрд╕ рд░реЗрдкреЛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
Letsencrypt рдордВрдЪреЛрдВ рдкрд░ рдПрдХ рдкреЛрд╕реНрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░, Letsencrypt рдиреЗ рдХрд▓ рдЕрдкрдиреЗ CDN рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛, рдЬреЛ рдирд┐рд░реНрдЬрд▓рд┐рдд рдХреЗ 0.5.0 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдирд┐рдпреЛрдЬрд┐рдд 0.13.0 рд░рд┐рд▓реАрдЬ рдореЗрдВ 0.6.5 рдирд┐рд░реНрдЬрд▓рд┐рдд рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж @ im-erikjohanssonред
рдЬреЛ рдХреЛрдИ рднреА рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ '/usr/local/openresty/luajit/bin/resty-auto-ssl/dehydrated' рдкрд░ рд╕реНрдерд┐рдд 'рдбреАрд╣рд╛рдЗрдбреНрд░реЗрдЯреЗрдб' рдлрд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░реЗрдВ:
REAL_LICENSE="$(http_request head "${CA_TERMS}" | (grep Location: || true) | awk -F ': ' '{print $2}' | tr -d '\n\r')"
рдкреНрд░рддрд┐
REAL_LICENSE="$(http_request head "${CA_TERMS}" | (grep -i Location: || true) | awk -F ': ' '{print $2}' | tr -d '\n\r')"
рддрдерд╛
# Retrieve nonce from acme-server
if [[ ${API} -eq 1 ]]; then
nonce="$(http_request head "${CA}" | grep Replay-Nonce: | awk -F ': ' '{print $2}' | tr -d '\n\r')"
else
nonce="$(http_request head "${CA_NEW_NONCE}" | grep Replay-Nonce: | awk -F ': ' '{print $2}' | tr -d '\n\r')"
fi
рдкреНрд░рддрд┐
# Retrieve nonce from acme-server
if [[ ${API} -eq 1 ]]; then
nonce="$(http_request head "${CA}" | grep -i Replay-Nonce: | awk -F ': ' '{print $2}' | tr -d '\n\r')"
else
nonce="$(http_request head "${CA_NEW_NONCE}" | grep -i Replay-Nonce: | awk -F ': ' '{print $2}' | tr -d '\n\r')"
fi
@ronaldgetz рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╕рд╣реА рдЕрд╕реНрдерд╛рдпреА рд╕реБрдзрд╛рд░ред
рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдЬрдм 0.13.0 рд░рд┐рд▓реАрдЬ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИ?
0.13.0 рд░рд┐рд▓реАрдЬ рдХреЛ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рд░рд┐рд▓реАрдЬ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдЗрд╕рдореЗрдВ рдХреБрдЫ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
@GUI рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдкрд░
рдирд┐рд░реНрдЬрд▓рд┐рдд рддрдп рд╣реИ рдХрд┐
рдпрд╣ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдорд╛рдВрдЧ рдпрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рдХрд╛рдо рд╣реИ, рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ рдЗрд╕рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдХреЛрдИ рдирдпрд╛ рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕реЗ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдкрд░ рдЪрд▓рд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╣рдо рдХрд░рддреЗ рд╣реИрдВ - рд╣рдордиреЗ рдЗрд╕ рддрд░рд╣ рдПрдХ рдлрд┐рдХреНрд╕ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рд╣реИ:
# Temporary fix for https://github.com/GUI/lua-resty-auto-ssl/issues/192
RUN sed -i 's/grep Location/grep -i Location/g' /usr/local/openresty/luajit/bin/resty-auto-ssl/dehydrated && \
sed -i 's/grep Replay/grep -i Replay/g' /usr/local/openresty/luajit/bin/resty-auto-ssl/dehydrated
рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП
рдХреВрд▓, рдЗрд╕рдиреЗ рдЗрд╕реЗ рдореЗрд░реА рддрд░рдл рд╕реЗ рднреА рдареАрдХ рдХрд░ рджрд┐рдпрд╛
Details:
{
"type": "urn:acme:error:badNonce",
"detail": "JWS has no anti-replay nonce",
"status": 400
}
рдЗрд╕ рдкрд░ рджреЗрд░реА рд╕реЗ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рд░рджрд░реНрдж рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╕рднреА рдХреЛ! v0.13.0 рдЕрдм рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрдВрдбрд▓ рдореЗрдВ рдирд┐рд░реНрдЬрд▓рд┐рдд рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдирдИ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЪрд┐рд▓реНрд▓рд╛рдПрдВред
рдФрд░ рдЗрд╕рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдФрд░ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж!
@GUI рдирдП, рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреНрд╡рд░рд┐рдд рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдо рдЕрдиреБрд░рдХреНрд╖рдХ рдЗрддрдиреА рддреЗрдЬреА рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдиреЗ рдпрд╣рд╛рдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ред рддреЛ рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рджред
рдЖрд╕рд╛рди рд╣реЙрдЯрдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреИрдЪ рдХреЗ рд░реВрдк рдореЗрдВ @ronaldgetz рдкрд░рд┐рд╡рд░реНрддрди рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ:
--- luajit/bin/resty-auto-ssl/dehydrated 2019-10-23 16:05:48.322378013 +0200
+++ luajit/bin/resty-auto-ssl/dehydrated 2019-10-23 16:08:12.359383225 +0200
@@ -296,7 +296,7 @@
else
# Check if private account key exists, if it doesn't exist yet generate a new one (rsa key)
if [[ ! -e "${ACCOUNT_KEY}" ]]; then
- REAL_LICENSE="$(http_request head "${CA_TERMS}" | (grep Location: || true) | awk -F ': ' '{print $2}' | tr -d '\n\r')"
+ REAL_LICENSE="$(http_request head "${CA_TERMS}" | (grep -i Location: || true) | awk -F ': ' '{print $2}' | tr -d '\n\r')"
if [[ -z "${REAL_LICENSE}" ]]; then
printf '\n' >&2
printf 'Error retrieving terms of service from certificate authority.\n' >&2
@@ -523,9 +523,9 @@
# Retrieve nonce from acme-server
if [[ ${API} -eq 1 ]]; then
- nonce="$(http_request head "${CA}" | grep Replay-Nonce: | awk -F ': ' '{print $2}' | tr -d '\n\r')"
+ nonce="$(http_request head "${CA}" | grep -i Replay-Nonce: | awk -F ': ' '{print $2}' | tr -d '\n\r')"
else
- nonce="$(http_request head "${CA_NEW_NONCE}" | grep Replay-Nonce: | awk -F ': ' '{print $2}' | tr -d '\n\r')"
+ nonce="$(http_request head "${CA_NEW_NONCE}" | grep -i Replay-Nonce: | awk -F ': ' '{print $2}' | tr -d '\n\r')"
fi
# Build header with just our public key and algorithm information
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЗрд╕ рдкрд░ рджреЗрд░реА рд╕реЗ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рд░рджрд░реНрдж рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╕рднреА рдХреЛ! v0.13.0 рдЕрдм рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрдВрдбрд▓ рдореЗрдВ рдирд┐рд░реНрдЬрд▓рд┐рдд рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдирдИ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЪрд┐рд▓реНрд▓рд╛рдПрдВред
рдФрд░ рдЗрд╕рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдФрд░ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж!