Преглед изворни кода

Option to remove pinning from a domain

Bob Mottram пре 8 година
родитељ
комит
94310d176f
1 измењених фајлова са 15 додато и 1 уклоњено
  1. 15
    1
      src/freedombone-pin-cert

+ 15
- 1
src/freedombone-pin-cert Прегледај датотеку

54
 
54
 
55
                         PIN_HEADER="Public-Key-Pins 'pin-sha256=\"${KEY_HASH}\"; pin-sha256=\"${BACKUP_KEY_HASH}\"; max-age=5184000; includeSubDomains';"
55
                         PIN_HEADER="Public-Key-Pins 'pin-sha256=\"${KEY_HASH}\"; pin-sha256=\"${BACKUP_KEY_HASH}\"; max-age=5184000; includeSubDomains';"
56
                         sed -i "s|Public-Key-Pins.*|${PIN_HEADER}|g" $file
56
                         sed -i "s|Public-Key-Pins.*|${PIN_HEADER}|g" $file
57
-                        echo "Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH"
57
+                        echo $"Pinned $DOMAIN_NAME with keys $KEY_HASH $BACKUP_KEY_HASH"
58
                     fi
58
                     fi
59
                 fi
59
                 fi
60
             fi
60
             fi
69
 fi
69
 fi
70
 
70
 
71
 DOMAIN_NAME=$1
71
 DOMAIN_NAME=$1
72
+REMOVE=$2
72
 KEY_FILENAME=/etc/ssl/private/${DOMAIN_NAME}.key
73
 KEY_FILENAME=/etc/ssl/private/${DOMAIN_NAME}.key
73
 BACKUP_KEY_FILENAME=/etc/ssl/certs/${DOMAIN_NAME}.pem
74
 BACKUP_KEY_FILENAME=/etc/ssl/certs/${DOMAIN_NAME}.pem
74
 SITE_FILENAME=$WEBSITES_DIRECTORY/${DOMAIN_NAME}
75
 SITE_FILENAME=$WEBSITES_DIRECTORY/${DOMAIN_NAME}
75
 
76
 
77
+if [ ! ${DOMAIN_NAME} ]; then
78
+    exit 0
79
+fi
80
+
76
 if [ ! -f "$SITE_FILENAME" ]; then
81
 if [ ! -f "$SITE_FILENAME" ]; then
77
     exit 0
82
     exit 0
78
 fi
83
 fi
79
 
84
 
85
+if [[ $REMOVE == "remove" ]]; then
86
+    if grep -q "Public-Key-Pins" $SITE_FILENAME; then
87
+        sed -i "/Public-Key-Pins/d" $SITE_FILENAME
88
+        echo $"Removed pinning for ${DOMAIN_NAME}"
89
+        systemctl restart nginx
90
+    fi
91
+    exit 0
92
+fi
93
+
80
 if [ ! -f "$KEY_FILENAME" ]; then
94
 if [ ! -f "$KEY_FILENAME" ]; then
81
     echo $"No private key certificate found for $DOMAIN_NAME"
95
     echo $"No private key certificate found for $DOMAIN_NAME"
82
     exit 1
96
     exit 1