Ich habe gerade versucht, lua-resty-auto-ssl mit dem folgenden Befehl luarocks zu installieren:
sudo luarocks install lua-resty-auto-ssl
Aber es verwendet immer noch die dehydrierte Version 0.5.0, die einen Fehler hat, den Replay-Nonce-Header während der Validierung von letsencrypt zu erhalten. Ich muss die dehydrierte Datei aktualisieren, damit sie funktioniert!
Können wir das Luarocks-Repository aktualisieren?
Laut einem Beitrag in den Letsencrypt-Foren hat letsencrypt gestern sein CDN geändert, was zu Problemen mit der Version 0.5.0 von dehydrated führt.
Die geplante Version 0.13.0 soll 0.6.5 dehydriert enthalten, was dieses Problem beheben soll.
Danke @im-erikjohansson.
Für jeden, der mit einem ähnlichen Problem konfrontiert ist, müssen Sie die Datei „dehydrated“ unter „/usr/local/openresty/luajit/bin/resty-auto-ssl/dehydrated“ aktualisieren.
Aktualisieren Sie die folgenden Zeilen:
REAL_LICENSE="$(http_request head "${CA_TERMS}" | (grep Location: || true) | awk -F ': ' '{print $2}' | tr -d '\n\r')"
zu
REAL_LICENSE="$(http_request head "${CA_TERMS}" | (grep -i Location: || true) | awk -F ': ' '{print $2}' | tr -d '\n\r')"
UND
# 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
zu
# 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 danke dafür, perfekte vorübergehende Lösung.
Irgendeine Idee, wann die Version 0.13.0 geplant ist?
Die Version 0.13.0 muss so schnell wie möglich veröffentlicht werden. Irgendwas, was ich tun könnte, um dabei zu helfen?
@GUI kannst du das
Dehydrierte fixiert , dass
Dies sollte hohe Priorität haben. Ich möchte nicht anspruchsvoll sein, da ich weiß, wie viel Arbeit es ist, Open Source-Projekte zu pflegen, aber bitte veröffentlichen Sie eine neue Version davon, da keine neuen SSL-Zertifikate mehr ausgestellt werden können.
Für den Fall, dass dies jemand wie wir auf Docker-Containern ausführt, haben wir einen Fix wie diesen bereitgestellt:
# 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
Danke @ronaldgetz für die Korrektur.
Cool, das hat es auch auf meiner Seite behoben
Details:
{
"type": "urn:acme:error:badNonce",
"detail": "JWS has no anti-replay nonce",
"status": 400
}
Entschuldigung für die Kopfschmerzen, die durch die Verzögerung verursacht wurden! v0.13.0 ist jetzt veröffentlicht, das die neuere Version von dehydrated enthält. Rufen Sie an, wenn Sie immer noch Probleme mit der neuen Version sehen.
Und danke an alle, die dies und die temporären Workarounds gemeldet haben!
@GUI Vielen Dank für Ihre schnelle Veröffentlichung der neuen,
Hier sind @ronaldgetz- Änderungen als Patch zum einfacheren Hotfixing:
--- 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
Hilfreichster Kommentar
Entschuldigung für die Kopfschmerzen, die durch die Verzögerung verursacht wurden! v0.13.0 ist jetzt veröffentlicht, das die neuere Version von dehydrated enthält. Rufen Sie an, wenn Sie immer noch Probleme mit der neuen Version sehen.
Und danke an alle, die dies und die temporären Workarounds gemeldet haben!