]> git.giorgioravera.it Git - scripts.git/commitdiff
Review update_certificate script
authorGiorgio Ravera <giorgio.ravera@gmail.com>
Wed, 9 Sep 2020 20:19:13 +0000 (22:19 +0200)
committerGiorgio Ravera <giorgio.ravera@gmail.com>
Wed, 9 Sep 2020 20:19:13 +0000 (22:19 +0200)
update_certificate
update_certificate_asterisk [deleted file]
update_certificate_xenserver [deleted file]

index e8ece4d7ea5fc1b3e6b1b491b1b058c4cb56dc70..f30f2c87278eae056ec94b776443b5c24152ebdf 100755 (executable)
@@ -1,20 +1,64 @@
 #!/bin/bash
 
-# Download
-echo " ------------------------------- "
-echo "| Updating Download Certificate |"
-echo " ------------------------------- "
-host="download.giorgioravera.it"
-user="root"
-ALIVE=$(ping -c 1 $host |grep ttl)
-if [ ! -z "$ALIVE" ]; then
-       rsync -rlptDv /etc/letsencrypt/archive $user@$host:/etc/letsencrypt/
-       rsync -rlptDv /etc/letsencrypt/live $user@$host:/etc/letsencrypt/
-       ssh $user@$host /etc/init.d/apache2 restart
-else
-       echo "Host $host not alive, skipped"
-fi
-echo ""
+# Parameters
+src_folder="/etc/letsencrypt/live/server.giorgioravera.it"
+src_cert="$src_folder/cert.pem"
+src_key="$src_folder/privkey.pem"
+src_chain="$src_folder/chain.pem"
+src_fullchain="$src_folder/fullchain.pem"
+dst_folder="/etc/ssl/giorgioravera.it/"
+dst_cert="$dst_folder/cert.pem"
+dst_key="$dst_folder/privkey.pem"
+dst_chain="$dst_folder/chain.pem"
+dst_fullchain="$dst_folder/fullchain.pem"
+dst_server="$dst_folder/server.pem"
+dst_tmp_folder="/tmp"
+dst_tmp_cert="$dst_tmp_folder/cert.pem"
+dst_tmp_key="$dst_tmp_folder/key.pem"
+dst_tmp_server="$dst_tmp_folder/server.pem"
+PATH="$PATH:/usr/local/bin"
+
+# Update Function
+function update_certificate () {
+       ALIVE=$(ping -c 1 $host |grep ttl)
+       if [ ! -z "$ALIVE" ]; then
+               ssh $user@$host mkdir -p $dst_folder
+               scp $src_cert $user@$host:$dst_cert
+               scp $src_key $user@$host:$dst_key
+               scp $src_chain $user@$host:$dst_chain
+               scp $src_fullchain $user@$host:$dst_fullchain
+               ssh $user@$host "cat $dst_cert > $dst_server"
+               ssh $user@$host "cat $dst_key >> $dst_server"
+               ssh $user@$host $command
+       else
+               echo "Host $host not alive, skipped"
+       fi
+}
+
+function copy_certificate () {
+       ALIVE=$(ping -c 1 $host |grep ttl)
+       if [ ! -z "$ALIVE" ]; then
+               scp $src_cert $user@$host:$dst_tmp_cert
+               scp $src_key $user@$host:$dst_tmp_key
+               ssh $user@$host "cat $dst_tmp_cert > $dst_tmp_server"
+               ssh $user@$host "cat $dst_tmp_key >> $dst_tmp_server"
+               ssh $user@$host $command
+               ssh $user@$host rm $dst_tmp_cert $dst_tmp_key $dst_tmp_server
+       else
+               echo "Host $host not alive, skipped"
+       fi
+}
+
+## Download
+#echo " ------------------------------- "
+#echo "| Updating Download Certificate |"
+#echo " ------------------------------- "
+#host="download.giorgioravera.it"
+#user="root"
+#command="/etc/init.d/apache2 restart"
+##command="systemctl restart apache2.service"
+#update_certificate
+#echo ""
 
 # Docker
 echo " ------------------------------- "
@@ -22,15 +66,8 @@ echo "| Updating Docker Certificate   |"
 echo " ------------------------------- "
 host="docker.giorgioravera.it"
 user="root"
-ALIVE=$(ping -c 1 $host |grep ttl)
-if [ ! -z "$ALIVE" ]; then
-       rsync -rlptDv /etc/letsencrypt/archive $user@$host:/etc/letsencrypt/
-       rsync -rlptDv /etc/letsencrypt/live $user@$host:/etc/letsencrypt/
-#      ssh $user@$host systemctl restart xo-server.service
-       ssh $user@$host docker container restart traefik
-else
-       echo "Host $host not alive, skipped"
-fi
+command="docker container restart traefik mosquitto"
+update_certificate
 echo ""
 
 # Asterisk
@@ -39,12 +76,15 @@ echo "| Updating Asterisk Certificate |"
 echo " ------------------------------- "
 host="asterisk.giorgioravera.it"
 user="root"
-ALIVE=$(ping -c 1 $host |grep ttl)
-if [ ! -z "$ALIVE" ]; then
-       update_certificate_asterisk
-else
-       echo "Host $host not alive, skipped"
-fi
+command="cat $dst_tmp_cert > /etc/asterisk/keys/Asterisk.crt &&
+        cat $dst_tmp_key > /etc/asterisk/keys/Asterisk.key &&
+        cat $dst_tmp_cert > /etc/httpd/pki/webserver.crt &&
+        cat $dst_tmp_key > /etc/httpd/pki/webserver.key &&
+        fwconsole certificate --import &&
+        fwconsole certificate --default=0 &&
+        fwconsole reload &&
+        systemctl reload httpd.service"
+copy_certificate
 echo ""
 
 # NAS
@@ -53,16 +93,9 @@ echo "| Updating NAS Certificate      |"
 echo " ------------------------------- "
 host="nas.giorgioravera.it"
 user="admin"
-ALIVE=$(ping -c 1 $host |grep ttl)
-if [ ! -z "$ALIVE" ]; then
-       scp /etc/letsencrypt/live/server.giorgioravera.it/cert.pem $user@$host:/etc/stunnel
-       scp /etc/letsencrypt/live/server.giorgioravera.it/privkey.pem $user@$host:/etc/stunnel
-       ssh $user@$host 'cat /etc/stunnel/privkey.pem > /etc/stunnel/stunnel.pem'
-       ssh $user@$host 'cat /etc/stunnel/cert.pem >> /etc/stunnel/stunnel.pem'
-       ssh $user@$host /etc/init.d/stunnel.sh restart
-else
-       echo "Host $host not alive, skipped"
-fi
+command="cat $dst_tmp_server > /etc/stunnel/stunnel.pem &&
+       /etc/init.d/stunnel.sh restart"
+copy_certificate
 echo ""
 
 # Firewall
@@ -85,10 +118,7 @@ echo "| Updating Xenserver Certificate |"
 echo " ------------------------------- "
 host="xenserver.giorgioravera.it"
 user="root"
-ALIVE=$(ping -c 1 $host |grep ttl)
-if [ ! -z "$ALIVE" ]; then
-       update_certificate_xenserver
-else
-       echo "Host $host not alive, skipped"
-fi
+command="cat $dst_tmp_server > /etc/xensource/xapi-ssl.pem &&
+        systemctl restart xapi.service"
+copy_certificate
 echo ""
diff --git a/update_certificate_asterisk b/update_certificate_asterisk
deleted file mode 100755 (executable)
index f74cd66..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-# Parameters
-host='asterisk.giorgioravera.it'
-username="root"
-cert_path="/etc/letsencrypt/live/server.giorgioravera.it"
-keyname="letsencrypt"
-certificate="cert.pem"
-privatekey="privkey.pem"
-
-# Replace old cert & key
-scp $cert_path/$certificate $username@$host:/etc/asterisk/keys/Asterisk.crt
-scp $cert_path/$privatekey $username@$host:/etc/asterisk/keys/Asterisk.key
-ssh $username@$host chown asterisk:asterisk /etc/asterisk/keys/Asterisk.crt
-ssh $username@$host chown asterisk:asterisk /etc/asterisk/keys/Asterisk.key
-ssh $username@$host fwconsole certificate --import
-ssh $username@$host fwconsole certificate --default=0
-ssh $username@$host fwconsole reload
-ssh $username@$host systemctl reload httpd.service
diff --git a/update_certificate_xenserver b/update_certificate_xenserver
deleted file mode 100755 (executable)
index 4aab4c2..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-
-# Parameters
-host='xenserver.giorgioravera.it'
-username="root"
-cert_path="/etc/letsencrypt/live/server.giorgioravera.it"
-keyname="letsencrypt"
-certificate="cert.pem"
-privatekey="privkey.pem"
-
-# Moving into temp dir
-cd /tmp
-
-# Replace old cert & key
-cat $cert_path/$certificate > xapi-ssl.pem
-cat $cert_path/$privatekey >> xapi-ssl.pem
-scp xapi-ssl.pem $username@$host:/etc/xensource
-ssh $username@$host chmod 400 /etc/xensource/xapi-ssl.pem
-ssh $username@$host systemctl restart xapi.service
-
-# Clean directory
-rm xapi-ssl.pem