λ°©κΈ μλ luarocks λͺ
λ Ήμ μ¬μ©νμ¬ lua-resty-auto-sslμ μ€μΉνλ €κ³ νμ΅λλ€.
sudo luarocks install lua-resty-auto-ssl
κ·Έλ¬λ μ ν¨μ± κ²μ¬ μ€μ letsencryptμμ Replay-Nonce ν€λλ₯Ό κ°μ Έμ€λ λ²κ·Έκ° μλ νμλ λ²μ 0.5.0μ κ³μ μ¬μ©νκ³ μμ΅λλ€. μλνλ €λ©΄ νμλ νμΌμ μ λ°μ΄νΈν΄μΌ ν©λλ€!
luarocks μ μ₯μλ₯Ό μ λ°μ΄νΈν μ μμ΅λκΉ?
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 λΉμ μ μ΄κ²μ μ°¨μ ν μ μμ΅λκΉ? μ΄κ²μ HTTP/2 λμλ¬Έμλ₯Ό ꡬλΆνλ ν€λλ‘ μΈν΄ λ°μν κ² κ°μ΅λλ€.
νμ κ° ν΄κ²°λμμ΅λλ€.
μ΄κ²μ μ°μ μμκ° λμμΌ ν©λλ€. μ€ν μμ€ νλ‘μ νΈλ₯Ό μ μ§ κ΄λ¦¬νλ κ²μ΄ μΌλ§λ λ§μ μμ μΈμ§ μκΈ° λλ¬Έμ μꡬνκ±°λ μ무κ²λ νκ³ μΆμ§ μμ΅λλ€. νμ§λ§ λ μ΄μ μλ‘μ΄ SSL μΈμ¦μλ₯Ό λ°κΈν μ μμΌλ―λ‘ μ΄ λ²μ μ μ λ²μ μ μΆμνμμμ€.
λκ΅°κ° μ°λ¦¬μ²λΌ Docker Containersμμ μ΄κ²μ μ€ννλ κ²½μ° - μ°λ¦¬λ λ€μκ³Ό κ°μ μμ μ¬νμ λ°°ν¬νμ΅λλ€.
# 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
μμ μ λν΄ @ronaldgetz μκ² κ°μ¬λ립λλ€.
μΏ¨, μ΄κ²λ λ΄ μͺ½μμ κ³ μ³€μ΄
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μ΄ μ΄μ 릴리μ€λμμ΅λλ€. μ 릴리μ€μμ μ¬μ ν λ¬Έμ κ° νμλλ©΄ μ리λ₯Ό μ§λ₯΄μμμ€.
κ·Έλ¦¬κ³ μ΄ λ¬Έμ μ μμ ν΄κ²° λ°©λ²μ λ³΄κ³ ν΄ μ£Όμ λͺ¨λ λΆλ€κ» κ°μ¬λ립λλ€!