Guest User

Untitled

a guest
Jan 16th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.59 KB | None | 0 0
  1. #!/bin/bash
  2. #set -x
  3. List="/root/scripts/list"
  4.  
  5. NameCert=$(mount | grep "/mnt/ca/" | sed 's/\/mnt\/ca\///' | awk '{print $3}')
  6. cp /dev/null /root/scripts/list
  7.  
  8. # Pathes where we going to search
  9. FilePath=(
  10. "/etc/nginx"
  11. "/var/www/"
  12. "/opt/"
  13. )
  14.  
  15. # Set what we will search
  16. Keys=(
  17. "$NameCert*.crt"
  18. "$NameCert*.key"
  19. )
  20.  
  21. # Here we will search our pattern in locally
  22. for Cert in "${Keys[@]}"
  23. do
  24. for Path in "${FilePath[@]}"
  25. do
  26. find $Path -name $Cert >> $List
  27. done
  28. done
  29.  
  30. IFS=$'\n'
  31. crt=( `cat $List | grep '.crt'` )
  32. key=( `cat $List | grep '.key'` )
  33.  
  34. # check for crt and key
  35. for (( i=0; i<${#key[@]}; i++))
  36. do
  37. if [ -f ${key[$i]} ]
  38. then
  39. md5Key=( `openssl rsa -noout -modulus -in ${key[$i]} | openssl md5 | awk '{print $2}'` )
  40.  
  41. for (( j=0; j<${#crt[@]}; j++))
  42. do
  43. if [ -f ${crt[$j]} ]
  44. then
  45. md5Crt=( `openssl x509 -noout -modulus -in ${crt[$j]} | openssl md5 | awk '{print $2}'` )
  46.  
  47. if [ "$md5Key" == "$md5Crt" ]
  48. then
  49. # it's same pair
  50. ProdCrt=( `md5sum ${crt[$j]} | awk '{print $1}'` )
  51. MntCrt=( `md5sum "/mnt/ca/$NameCert/$NameCert.crt" | awk '{print $1}'` )
  52. if [ "$MntCrt" == "$ProdCrt" ]
  53. then
  54. echo "all right"
  55. else
  56. cp "/mnt/ca/$NameCert/$NameCert.crt" ${crt[$j]}
  57. cp "/mnt/ca/$NameCert/$NameCert.key" ${key[$i]}
  58. echo "Crt and key chnaged." >> /var/log/syslog
  59. fi
  60.  
  61. # remove from our list of our crt
  62. unset crt[$j]
  63. unset key[$i]
  64. fi
  65. fi
  66. done
  67. fi
  68. done
  69.  
  70. # alone crt
  71. for (( k=0; k<${#crt[@]}; k++))
  72. do
  73. ProdCrt2=( `md5sum ${crt[$k]} | awk '{print $1}'` )
  74. MntCrt2=( `md5sum "/mnt/ca/$NameCert/$NameCert.crt" | awk '{print $1}'` )
  75. if [ "$MntCrt" == "$ProdCrt" ]
  76. then
  77. echo "all right. changed only file crt"
  78. else
  79. cp "/mnt/ca/$NameCert/$NameCert.crt" ${crt[$k]}
  80. echo "Crt and key chnaged." >> /var/log/syslog
  81. fi
  82. done
  83.  
  84.  
  85.  
  86. #!/bin/bash
  87. #set -x
  88. List="/root/scripts/list"
  89.  
  90. NameCert=$(mount | grep "/mnt/ca/" | sed 's/\/mnt\/ca\///' | awk '{print $3}')
  91. cp /dev/null /root/scripts/list
  92.  
  93. # Pathes where we going to search
  94. FilePath=(
  95. "/etc/nginx"
  96. "/var/www/"
  97. "/opt/"
  98. )
  99.  
  100. # Set what we will search
  101. Keys=(
  102. "$NameCert*.crt"
  103. "$NameCert*.key"
  104. )
  105.  
  106. # Here we will search our pattern in locally
  107. for Cert in "${Keys[@]}"
  108. do
  109. for Path in "${FilePath[@]}"
  110. do
  111. find $Path -name $Cert >> $List
  112. done
  113. done
  114.  
  115. IFS=$'\n'
  116. crt=( `cat $List | grep '.crt'` )
  117. key=( `cat $List | grep '.key'` )
  118.  
  119. # check for crt and key
  120. for (( i=0; i<${#key[@]}; i++))
  121. do
  122. if [ -f ${key[$i]} ]
  123. then
  124. md5Key=( `openssl rsa -noout -modulus -in ${key[$i]} | openssl md5 | awk '{print $2}'` )
  125.  
  126. for (( j=0; j<${#crt[@]}; j++))
  127. do
  128. FactCert=$(echo ${crt[$j]} | tr "/" "\n" | awk 'END {print $NF}')
  129. FactKey=$(echo ${key[$i]} | tr "/" "\n" | awk 'END {print $NF}')
  130.  
  131. if [ -f ${crt[$j]} ]
  132. then
  133. md5Crt=( `openssl x509 -noout -modulus -in ${crt[$j]} | openssl md5 | awk '{print $2}'` )
  134.  
  135. if [ "$md5Key" == "$md5Crt" ]
  136. then
  137. # it's same pair
  138. ProdCrt=( `md5sum ${crt[$j]} | awk '{print $1}'` )
  139. MntCrt=( `md5sum "/mnt/ca/$NameCert/$FactCert" | awk '{print $1}'` )
  140. if [ "$MntCrt" == "$ProdCrt" ]
  141. then
  142. echo "all right"
  143. else
  144. echo 'status 1'
  145. cp "/mnt/ca/$NameCert/$FactCert" ${crt[$j]}
  146. cp "/mnt/ca/$NameCert/$FactKey" ${key[$i]}
  147. echo "Crt and key chnaged." >> /var/log/syslog
  148. # echo "`date | awk '{print $2,$3,$4}'` Keys and Certs are different. Now renew files." >> /var/log/syslog
  149. fi
  150. else
  151. ProdCrt2=( `md5sum ${crt[$j]} | awk '{print $1}'` )
  152. MntCrt2=( `md5sum "/mnt/ca/$NameCert/$FactCert" | awk '{print $1}'` )
  153. if [ "$MntCrt2" == "$ProdCrt2" ]
  154. then
  155. echo "all right. for crt"
  156. else
  157. cp "/mnt/ca/$NameCert/$FactCert" ${crt[$j]}
  158. echo "Crt and key chnaged." >> /var/log/syslog
  159. fi
  160. fi
  161. fi
  162.  
  163. done
  164. fi
  165. done
Add Comment
Please, Sign In to add comment