fix: wait for Zoraxy before cert upload, verbose retry messages

This commit is contained in:
Claus Lohmar 2026-07-07 18:33:39 +01:00
parent b684242eb9
commit b0325267db

View file

@ -299,25 +299,39 @@ EOF
# Upload certs to Zoraxy via API (needed to register them in sys.db) # Upload certs to Zoraxy via API (needed to register them in sys.db)
echo "[*] Registering certificates in Zoraxy..." echo "[*] Registering certificates in Zoraxy..."
# Wait for Zoraxy to be ready
for i in $(seq 1 15); do
if curl -sf --max-time 3 "http://127.0.0.1:8000/api/auth/userCount" > /dev/null 2>&1; then
break
fi
sleep 2
done
CERTS_DIR="$TARGET_DIR/config/zoraxy/conf/certs" CERTS_DIR="$TARGET_DIR/config/zoraxy/conf/certs"
for SUB in $APP_SUB $DNS_SUB $WWW_SUB; do for SUB in $APP_SUB $DNS_SUB $WWW_SUB; do
FQDN="${SUB}.${DOMAIN}" FQDN="${SUB}.${DOMAIN}"
CRT_FILE="$CERTS_DIR/${FQDN}.crt" CRT_FILE="$CERTS_DIR/${FQDN}.crt"
[ -f "$CRT_FILE" ] || continue [ -f "$CRT_FILE" ] || continue
for TRY in 1 2 3; do for TRY in 1 2 3; do
C=$(curl -s --max-time 5 -c /tmp/zc.txt http://127.0.0.1:8000/login.html 2>&1) C=$(curl -s --max-time 5 -c /tmp/zc.txt "http://127.0.0.1:8000/login.html" 2>&1)
T=$(echo "$C" | grep 'zoraxy.csrf.Token' | sed 's/.*content="//;s/".*//') T=$(echo "$C" | grep 'zoraxy.csrf.Token' | sed 's/.*content="//;s/".*//')
[ -z "$T" ] && sleep 2 && continue if [ -z "$T" ]; then
echo " Retry $TRY for $FQDN (no CSRF)"
sleep 2
continue
fi
R=$(curl -s --max-time 5 -b /tmp/zc.txt -X POST "http://127.0.0.1:8000/api/cert/upload?ktype=pub&domain=$FQDN" \ R=$(curl -s --max-time 5 -b /tmp/zc.txt -X POST "http://127.0.0.1:8000/api/cert/upload?ktype=pub&domain=$FQDN" \
-H "X-CSRF-Token: $T" --data-binary "@$CRT_FILE" 2>&1) || true -H "X-CSRF-Token: $T" --data-binary "@$CRT_FILE" 2>&1) || true
if echo "$R" | grep -qi '"success"\|"ok"\|^{}$'; then if echo "$R" | grep -qi '"success"\|"ok"\|^{}$'; then
echo " [OK] Cert registered: $FQDN" echo " [OK] Cert registered: $FQDN"
break break
else
echo " Retry $TRY for $FQDN: $(echo $R | head -c 80)"
sleep 2
fi fi
sleep 2
done done
done done
echo " [OK] Certificate registration complete" echo " [*] Certificate registration complete"
# Write systemd service # Write systemd service
echo "[*] Writing systemd service..." echo "[*] Writing systemd service..."