Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.02 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. UNIFI_DOMAIN="unifi.example.com"
  4. WEECHAT_DOMAIN="weechat.example.com"
  5. WEECHAT_USER="username"
  6. DOMAIN_LIST="$UNIFI_DOMAIN $WEECHAT_DOMAIN www.example.com"
  7.  
  8. ########################################################################
  9. #
  10. # Program header
  11. #
  12. ########################################################################
  13.  
  14. CAT=/bin/cat
  15. CERTBOT=/usr/bin/certbot
  16. CHMOD=/usr/bin/chmod
  17. CHOWN=/usr/bin/chown
  18. FIND=/usr/bin/find
  19. KEYTOOL=/bin/keytool
  20. OPENSSL=/usr/bin/openssl
  21. RM=/bin/rm
  22. SU=/usr/bin/su
  23. SYSTEMCTL=/bin/systemctl
  24. TEST=/usr/bin/test
  25. TOUCH=/usr/bin/touch
  26. WHOAMI=/usr/bin/whoami
  27.  
  28. for command in CAT CERTBOT CHMOD CHOWN FIND KEYTOOL OPENSSL RM SU SYSTEMCTL TEST TOUCH WHOAMI
  29. do
  30. if [ ! -f ${!command} ]
  31. then
  32. echo "Please install ${!command}"
  33. exit 1
  34. fi
  35. done
  36.  
  37. if [ "$(${WHOAMI})" != "root" ]; then
  38. echo "Script must be run as root!"
  39. exit 1
  40. fi
  41.  
  42. ########################################################################
  43. #
  44. # Renew certificates using certbot
  45. #
  46. ########################################################################
  47.  
  48. ${CERTBOT} renew
  49.  
  50. ########################################################################
  51. #
  52. # Update nginx certificates
  53. #
  54. ########################################################################
  55.  
  56. reload_nginx=0
  57.  
  58. for domain in ${DOMAIN_LIST}
  59. do
  60. if ${TEST} $(${FIND} /etc/letsencrypt/live/${domain}/cert.pem -mmin -60)
  61. then
  62. if [ ! -f /etc/nginx/ssl/${domain}_ssl.pem ]
  63. then
  64. ${TOUCH} /etc/nginx/ssl/${domain}_ssl.pem
  65. ${CHOWN} nginx:nginx /etc/nginx/ssl/${domain}_ssl.pem
  66. ${CHMOD} 0600 /etc/nginx/ssl/${domain}_ssl.pem
  67. ${TOUCH} /etc/nginx/ssl/${domain}_fullchain.pem
  68. ${CHOWN} nginx:nginx /etc/nginx/ssl/${domain}_fullchain.pem
  69. ${CHMOD} 0600 /etc/nginx/ssl/${domain}_fullchain.pem
  70. fi
  71. ${CAT} /etc/letsencrypt/live/${domain}/cert.pem /etc/letsencrypt/live/${domain}/privkey.pem > /etc/nginx/ssl/${domain}_ssl.pem
  72. ${CAT} /etc/letsencrypt/live/${domain}/fullchain.pem > /etc/nginx/ssl/${domain}_fullchain.pem
  73. reload_nginx=1
  74. fi
  75. done
  76.  
  77. if [ $reload_nginx -ne 0 ]
  78. then
  79. ${SYSTEMCTL} reload nginx.service
  80. fi
  81.  
  82. ########################################################################
  83. #
  84. # Update weechat certificates
  85. #
  86. ########################################################################
  87.  
  88. if test $(${FIND} /etc/letsencrypt/live/${WEECHAT_DOMAIN}/cert.pem -mmin -60)
  89. then
  90. ${CAT} /etc/letsencrypt/live/${WEECHAT_DOMAIN}/cert.pem /etc/letsencrypt/live/${WEECHAT_DOMAIN}/privkey.pem > /home/${WEECHAT_USER}/.weechat/ssl/${WEECHAT_DOMAIN}_ssl.pem
  91. ${CAT} /etc/letsencrypt/live/${WEECHAT_DOMAIN}/fullchain.pem > /home/${WEECHAT_USER}/.weechat/ssl/${WEECHAT_DOMAIN}_fullchain.pem
  92. ${SU} -c 'echo "*/relay sslcertkey" > /home/${WEECHAT_USER}/.weechat/weechat_fifo_*' ${WEECHAT_USER}
  93. fi
  94.  
  95. ########################################################################
  96. #
  97. # Update unifi certificates
  98. #
  99. ########################################################################
  100.  
  101. if test $(${FIND} /etc/letsencrypt/live/${UNIFI_DOMAIN}/cert.pem -mmin -60)
  102. then
  103. ${SYSTEMCTL} stop unifi.service
  104. ${OPENSSL} \
  105. pkcs12 \
  106. -export \
  107. -inkey /etc/letsencrypt/live/${UNIFI_DOMAIN}/privkey.pem \
  108. -in /etc/letsencrypt/live/${UNIFI_DOMAIN}/fullchain.pem \
  109. -out /tmp/${UNIFI_DOMAIN}.p12 \
  110. -name ubnt \
  111. -password pass:temppass
  112. ${KEYTOOL} \
  113. -importkeystore \
  114. -deststorepass aircontrolenterprise \
  115. -destkeypass aircontrolenterprise \
  116. -destkeystore /opt/UniFi/data/keystore \
  117. -srckeystore /tmp/${UNIFI_DOMAIN}.p12 \
  118. -srcstoretype PKCS12 \
  119. -srcstorepass temppass \
  120. -alias ubnt \
  121. -noprompt
  122. ${RM} -f /tmp/${UNIFI_DOMAIN}.p12
  123. ${SYSTEMCTL} start unifi.service
  124. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement