|
@@ -35,10 +35,16 @@ export TEXTDOMAINDIR="/usr/share/locale"
|
35
|
35
|
|
36
|
36
|
DOMAIN_NAME=$1
|
37
|
37
|
KEY_FILENAME=/etc/ssl/private/${DOMAIN_NAME}.key
|
|
38
|
+BACKUP_KEY_FILENAME=/etc/ssl/certs/${DOMAIN_NAME}.pem
|
38
|
39
|
SITE_FILENAME=/etc/nginx/sites-available/${DOMAIN_NAME}
|
39
|
40
|
|
40
|
41
|
if [ ! -f "$KEY_FILENAME" ]; then
|
41
|
|
- echo $"No certificate found for $DOMAIN_NAME"
|
|
42
|
+ echo $"No private key certificate found for $DOMAIN_NAME"
|
|
43
|
+ exit 1
|
|
44
|
+fi
|
|
45
|
+
|
|
46
|
+if [ ! -f "$BACKUP_KEY_FILENAME" ]; then
|
|
47
|
+ echo $"No fullchain certificate found for $DOMAIN_NAME"
|
42
|
48
|
exit 1
|
43
|
49
|
fi
|
44
|
50
|
|
|
@@ -47,8 +53,9 @@ if [ ! -f "$SITE_FILENAME" ]; then
|
47
|
53
|
fi
|
48
|
54
|
|
49
|
55
|
KEY_HASH=$(openssl rsa -in $KEY_FILENAME -outform der -pubout | openssl dgst -sha256 -binary | openssl enc -base64)
|
|
56
|
+BACKUP_KEY_HASH=$(openssl rsa -in $BACKUP_KEY_FILENAME -outform der -pubout | openssl dgst -sha256 -binary | openssl enc -base64)
|
50
|
57
|
|
51
|
|
-PIN_HEADER="add_header Public-Key-Pins 'pin-sha256=\"${KEY_HASH}\"; max-age=5184000; includeSubDomains';"
|
|
58
|
+PIN_HEADER="add_header Public-Key-Pins 'pin-sha256=\"${KEY_HASH}\"; pin-sha256=\"${BACKUP_KEY_HASH}\"; max-age=5184000; includeSubDomains';"
|
52
|
59
|
if ! grep -q "add_header Public-Key-Pins" $SITE_FILENAME; then
|
53
|
60
|
sed -i "/ssl_ciphers.*/a $PIN_HEADER" $SITE_FILENAME
|
54
|
61
|
else
|