Mercurial Hosting > luan
diff host/renewSsl.sh @ 2062:5ede71739221
merge branches
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Sat, 15 Nov 2025 18:07:51 -0700 |
| parents | dd10659fcdb9 |
| children |
line wrap: on
line diff
--- a/host/renewSsl.sh Sun Nov 09 11:32:18 2025 -0700 +++ b/host/renewSsl.sh Sat Nov 15 18:07:51 2025 -0700 @@ -1,9 +1,49 @@ #!/bin/bash -cd "$1"; +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 -ROOTPWD=$(pwd); + 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" + + # 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 -./acme.sh --renew-all --cert-home "$ROOTPWD"/sites --config-home "$ROOTPWD"/local/letsencrypt/config; + mkdir -p "$CHALLENGEDIR" + + "$ROOTPWD/acme_tiny" \ + --account-key "$KEYFILE" \ + --csr "$CSRFILE" \ + --acme-dir "$CHALLENGEDIR" \ + > "$TMPOUT" -sudo /usr/local/bin/nginx -s reload; + # check if exists + if [ -f "$FULLCHAIN" ]; then + mv $FULLCHAIN "$FULLCHAIN.old" + fi + + mv "$TMPOUT" "$FULLCHAIN" + + echo "Renewed certificate for $DOMAIN" + } || { + echo "Error processing $SITEROOT — skipping." + } +done + +sudo /usr/local/bin/nginx -s reload -c "$(pwd)/local/nginx.conf" +echo "Nginx reloaded."
