Lua-resty-auto-ssl: sudo luarocks lua-resty-auto-ssl рдЕрднреА рднреА рдирд┐рд░реНрдЬрд▓рд┐рдд 0.5.0 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 25 рд╕рд┐рддре░ 2019  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: auto-ssl/lua-resty-auto-ssl

рдореИрдВрдиреЗ рдиреАрдЪреЗ luarox рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ lua-resty-auto-ssl рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ:
sudo luarocks install lua-resty-auto-ssl

рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдирд┐рд░реНрдЬрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг 0.5.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рддреНрдпрд╛рдкрди рдХреЗ рджреМрд░рд╛рди рд▓реЗрдЯрд╕реЗрдирдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд░рд┐рдкреНрд▓реЗ-рдиреЙрди рд╣реЗрдбрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрдЧ рд╣реИред рдореБрдЭреЗ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдЬрд▓рд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛!

рдХреНрдпрд╛ рд╣рдо рд▓реБрдЖрд░реЛрдХреНрд╕ рд░реЗрдкреЛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕ рдкрд░ рджреЗрд░реА рд╕реЗ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рд░рджрд░реНрдж рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╕рднреА рдХреЛ! v0.13.0 рдЕрдм рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрдВрдбрд▓ рдореЗрдВ рдирд┐рд░реНрдЬрд▓рд┐рдд рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдирдИ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЪрд┐рд▓реНрд▓рд╛рдПрдВред

рдФрд░ рдЗрд╕рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдФрд░ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж!

рд╕рднреА 10 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕