Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #set -x
- List="/root/scripts/list"
- NameCert=$(mount | grep "/mnt/ca/" | sed 's/\/mnt\/ca\///' | awk '{print $3}')
- cp /dev/null /root/scripts/list
- # Pathes where we going to search
- FilePath=(
- "/etc/nginx"
- "/var/www/"
- "/opt/"
- )
- # Set what we will search
- Keys=(
- "$NameCert*.crt"
- "$NameCert*.key"
- )
- # Here we will search our pattern in locally
- for Cert in "${Keys[@]}"
- do
- for Path in "${FilePath[@]}"
- do
- find $Path -name $Cert >> $List
- done
- done
- IFS=$'\n'
- crt=( `cat $List | grep '.crt'` )
- key=( `cat $List | grep '.key'` )
- # check for crt and key
- for (( i=0; i<${#key[@]}; i++))
- do
- if [ -f ${key[$i]} ]
- then
- md5Key=( `openssl rsa -noout -modulus -in ${key[$i]} | openssl md5 | awk '{print $2}'` )
- for (( j=0; j<${#crt[@]}; j++))
- do
- if [ -f ${crt[$j]} ]
- then
- md5Crt=( `openssl x509 -noout -modulus -in ${crt[$j]} | openssl md5 | awk '{print $2}'` )
- if [ "$md5Key" == "$md5Crt" ]
- then
- # it's same pair
- ProdCrt=( `md5sum ${crt[$j]} | awk '{print $1}'` )
- MntCrt=( `md5sum "/mnt/ca/$NameCert/$NameCert.crt" | awk '{print $1}'` )
- if [ "$MntCrt" == "$ProdCrt" ]
- then
- echo "all right"
- else
- cp "/mnt/ca/$NameCert/$NameCert.crt" ${crt[$j]}
- cp "/mnt/ca/$NameCert/$NameCert.key" ${key[$i]}
- echo "Crt and key chnaged." >> /var/log/syslog
- fi
- # remove from our list of our crt
- unset crt[$j]
- unset key[$i]
- fi
- fi
- done
- fi
- done
- # alone crt
- for (( k=0; k<${#crt[@]}; k++))
- do
- ProdCrt2=( `md5sum ${crt[$k]} | awk '{print $1}'` )
- MntCrt2=( `md5sum "/mnt/ca/$NameCert/$NameCert.crt" | awk '{print $1}'` )
- if [ "$MntCrt" == "$ProdCrt" ]
- then
- echo "all right. changed only file crt"
- else
- cp "/mnt/ca/$NameCert/$NameCert.crt" ${crt[$k]}
- echo "Crt and key chnaged." >> /var/log/syslog
- fi
- done
- #!/bin/bash
- #set -x
- List="/root/scripts/list"
- NameCert=$(mount | grep "/mnt/ca/" | sed 's/\/mnt\/ca\///' | awk '{print $3}')
- cp /dev/null /root/scripts/list
- # Pathes where we going to search
- FilePath=(
- "/etc/nginx"
- "/var/www/"
- "/opt/"
- )
- # Set what we will search
- Keys=(
- "$NameCert*.crt"
- "$NameCert*.key"
- )
- # Here we will search our pattern in locally
- for Cert in "${Keys[@]}"
- do
- for Path in "${FilePath[@]}"
- do
- find $Path -name $Cert >> $List
- done
- done
- IFS=$'\n'
- crt=( `cat $List | grep '.crt'` )
- key=( `cat $List | grep '.key'` )
- # check for crt and key
- for (( i=0; i<${#key[@]}; i++))
- do
- if [ -f ${key[$i]} ]
- then
- md5Key=( `openssl rsa -noout -modulus -in ${key[$i]} | openssl md5 | awk '{print $2}'` )
- for (( j=0; j<${#crt[@]}; j++))
- do
- FactCert=$(echo ${crt[$j]} | tr "/" "\n" | awk 'END {print $NF}')
- FactKey=$(echo ${key[$i]} | tr "/" "\n" | awk 'END {print $NF}')
- if [ -f ${crt[$j]} ]
- then
- md5Crt=( `openssl x509 -noout -modulus -in ${crt[$j]} | openssl md5 | awk '{print $2}'` )
- if [ "$md5Key" == "$md5Crt" ]
- then
- # it's same pair
- ProdCrt=( `md5sum ${crt[$j]} | awk '{print $1}'` )
- MntCrt=( `md5sum "/mnt/ca/$NameCert/$FactCert" | awk '{print $1}'` )
- if [ "$MntCrt" == "$ProdCrt" ]
- then
- echo "all right"
- else
- echo 'status 1'
- cp "/mnt/ca/$NameCert/$FactCert" ${crt[$j]}
- cp "/mnt/ca/$NameCert/$FactKey" ${key[$i]}
- echo "Crt and key chnaged." >> /var/log/syslog
- # echo "`date | awk '{print $2,$3,$4}'` Keys and Certs are different. Now renew files." >> /var/log/syslog
- fi
- else
- ProdCrt2=( `md5sum ${crt[$j]} | awk '{print $1}'` )
- MntCrt2=( `md5sum "/mnt/ca/$NameCert/$FactCert" | awk '{print $1}'` )
- if [ "$MntCrt2" == "$ProdCrt2" ]
- then
- echo "all right. for crt"
- else
- cp "/mnt/ca/$NameCert/$FactCert" ${crt[$j]}
- echo "Crt and key chnaged." >> /var/log/syslog
- fi
- fi
- fi
- done
- fi
- done
Add Comment
Please, Sign In to add comment