Intenté instalar lua-resty-auto-ssl usando el comando luarocks a continuación:
sudo luarocks install lua-resty-auto-ssl
Pero todavía está usando la versión deshidratada 0.5.0 que tiene un error al obtener el encabezado Replay-Nonce de letsencrypt durante la validación. ¡Tengo que actualizar el archivo deshidratado para que funcione!
¿Podemos actualizar el repositorio de luarocks?
Según una publicación en los foros de letsencrypt, letsencrypt cambió su CDN ayer, lo que está causando problemas con la versión 0.5.0 de deshidratado.
La versión planeada 0.13.0 parece incluir 0.6.5 de deshidratado que se dice que soluciona este problema.
Gracias @ im-erikjohansson.
En cuanto a cualquier persona que se enfrente a un problema similar, deberá actualizar el archivo 'deshidratado' ubicado en '/ usr / local / openresty / luajit / bin / resty-auto-ssl / deshydrated'.
Actualice las siguientes líneas:
REAL_LICENSE="$(http_request head "${CA_TERMS}" | (grep Location: || true) | awk -F ': ' '{print $2}' | tr -d '\n\r')"
a
REAL_LICENSE="$(http_request head "${CA_TERMS}" | (grep -i Location: || true) | awk -F ': ' '{print $2}' | tr -d '\n\r')"
Y
# 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
a
# 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 gracias por eso, solución temporal perfecta.
¿Alguna idea de cuándo está programada la versión 0.13.0?
La versión 0.13.0 debe publicarse lo antes posible. ¿Algo que pueda hacer para ayudar con esto?
@GUI, ¿puedes participar en esto? Esto parece deberse a encabezados que distinguen entre mayúsculas y minúsculas de HTTP / 2.
Deshidratado arregló eso
Esto debería ser de alta prioridad. No quiero ser exigente ni nada, ya que sé cuánto trabajo es mantener proyectos de código abierto, pero publique una nueva versión de esta, ya que ya no se pueden emitir nuevos certificados SSL.
En caso de que alguien ejecute esto en Docker Containers como lo hacemos nosotros, implementamos una solución como esta:
# 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
Gracias @ronaldgetz por la solución.
Genial, también arregló esto de mi lado
Details:
{
"type": "urn:acme:error:badNonce",
"detail": "JWS has no anti-replay nonce",
"status": 400
}
¡Perdón por los dolores de cabeza causados por la demora en esto a todos! Se lanzó v0.13.0, que incluye la versión más reciente de deshidratado incluida. Grita si sigues viendo algún problema con la nueva versión.
¡Y gracias a todos por informar esto y las soluciones temporales!
@GUI Gracias por su rápido lanzamiento de la nueva versión fija. Definitivamente no es común que los mantenedores reaccionen tan rápido. Hiciste un gran trabajo aquí. 👍Así que gracias de nuevo.
Aquí están los cambios de @ronaldgetz como un parche para facilitar la revisión:
--- 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
Comentario más útil
¡Perdón por los dolores de cabeza causados por la demora en esto a todos! Se lanzó v0.13.0, que incluye la versión más reciente de deshidratado incluida. Grita si sigues viendo algún problema con la nueva versión.
¡Y gracias a todos por informar esto y las soluciones temporales!