Mercurial Hosting > luan
diff host/renewSsl.sh @ 2048:59f3a7f3d10b acme-tiny tip
add check for local_https in renewSsl.sh
| author | Violet7 |
|---|---|
| date | Tue, 11 Nov 2025 01:45:02 -0800 |
| parents | a4435e2e3417 |
| children |
line wrap: on
line diff
--- a/host/renewSsl.sh Sun Nov 09 02:38:09 2025 -0800 +++ b/host/renewSsl.sh Tue Nov 11 01:45:02 2025 -0800 @@ -1,31 +1,48 @@ #!/bin/bash +set -e cd "$1" || exit 1 + ROOTPWD=$(pwd) - +KEYFILE="$ROOTPWD/local/tiny_account.key" for SITEROOT in "$ROOTPWD"/sites/*; do - # Skip if not a directory - [ -d "$SITEROOT" ] || continue + { + # Skip if not a directory + [ -d "$SITEROOT" ] || continue - DOMAIN=$(basename "$SITEROOT") - echo "Processing domain: $DOMAIN" - - mkdir -p "$SITEROOT/site/.well-known/acme-challenge" + DOMAIN=$(basename "$SITEROOT") + CSRFILE="$SITEROOT/$DOMAIN.csr" + FULLCHAIN="$SITEROOT/fullchain.cer" + CHALLENGEDIR="$SITEROOT/site/.well-known/acme-challenge" + TMPOUT="/tmp/$DOMAIN.crt" + echo "Processing domain: $DOMAIN" - python3 "$ROOTPWD/acme_tiny.py" \ - --account-key "$ROOTPWD/local/tiny_account.key" \ - --csr "$SITEROOT/$DOMAIN.csr" \ - --acme-dir "$SITEROOT/site/.well-known/acme-challenge" \ - > "/tmp/$DOMAIN.crt" + # local_https.sh does not create a csr file, assume + # it is a self-signed local cert if it doesn't exist + if [ ! -f "$CSRFILE" ]; then + echo "CSR file not found, assuming self-signed and skipping." + continue + fi + + mkdir -p "$CHALLENGEDIR" - # check if exists - if [ -f "$SITEROOT/fullchain.cer" ]; then - mv "$SITEROOT/fullchain.cer" "$SITEROOT/fullchain.cer.old" - fi + python3 "$ROOTPWD/acme_tiny.py" \ + --account-key "$KEYFILE" \ + --csr "$CSRFILE" \ + --acme-dir "$CHALLENGEDIR" \ + > "$TMPOUT" - mv "/tmp/$DOMAIN.crt" "$SITEROOT/fullchain.cer" + # check if exists + if [ -f "$FULLCHAIN" ]; then + mv $FULLCHAIN "$FULLCHAIN.old" + fi - echo "Renewed certificate for $DOMAIN" + mv "$TMPOUT" "$FULLCHAIN" + + echo "Renewed certificate for $DOMAIN" + } || { + echo "Error processing $SITEROOT — skipping." + } done sudo /usr/local/bin/nginx -s reload
