|
1632
|
1 #!/bin/bash
|
|
|
2
|
|
2048
|
3 set -e
|
|
2037
|
4 cd "$1" || exit 1
|
|
2048
|
5
|
|
2037
|
6 ROOTPWD=$(pwd)
|
|
2048
|
7 KEYFILE="$ROOTPWD/local/tiny_account.key"
|
|
2037
|
8 for SITEROOT in "$ROOTPWD"/sites/*; do
|
|
2048
|
9 {
|
|
|
10 # Skip if not a directory
|
|
|
11 [ -d "$SITEROOT" ] || continue
|
|
2037
|
12
|
|
2048
|
13 DOMAIN=$(basename "$SITEROOT")
|
|
|
14 CSRFILE="$SITEROOT/$DOMAIN.csr"
|
|
|
15 FULLCHAIN="$SITEROOT/fullchain.cer"
|
|
|
16 CHALLENGEDIR="$SITEROOT/site/.well-known/acme-challenge"
|
|
|
17 TMPOUT="/tmp/$DOMAIN.crt"
|
|
|
18 echo "Processing domain: $DOMAIN"
|
|
1632
|
19
|
|
2048
|
20 # local_https.sh does not create a csr file, assume
|
|
|
21 # it is a self-signed local cert if it doesn't exist
|
|
|
22 if [ ! -f "$CSRFILE" ]; then
|
|
|
23 echo "CSR file not found, assuming self-signed and skipping."
|
|
|
24 continue
|
|
|
25 fi
|
|
|
26
|
|
|
27 mkdir -p "$CHALLENGEDIR"
|
|
1632
|
28
|
|
2048
|
29 python3 "$ROOTPWD/acme_tiny.py" \
|
|
|
30 --account-key "$KEYFILE" \
|
|
|
31 --csr "$CSRFILE" \
|
|
|
32 --acme-dir "$CHALLENGEDIR" \
|
|
|
33 > "$TMPOUT"
|
|
2037
|
34
|
|
2048
|
35 # check if exists
|
|
|
36 if [ -f "$FULLCHAIN" ]; then
|
|
|
37 mv $FULLCHAIN "$FULLCHAIN.old"
|
|
|
38 fi
|
|
2037
|
39
|
|
2048
|
40 mv "$TMPOUT" "$FULLCHAIN"
|
|
|
41
|
|
|
42 echo "Renewed certificate for $DOMAIN"
|
|
|
43 } || {
|
|
|
44 echo "Error processing $SITEROOT — skipping."
|
|
|
45 }
|
|
2037
|
46 done
|
|
|
47
|
|
|
48 sudo /usr/local/bin/nginx -s reload
|
|
|
49 echo "Nginx reloaded."
|