| 
															
														 | 
														
															 
														 | 
														
															
														 | 
														
															 
														 | 
													
												
													
														| 
															1678
														 | 
														
															 # script to automatically renew any Let's Encrypt certificates 
														 | 
														
															1678
														 | 
														
															 # script to automatically renew any Let's Encrypt certificates 
														 | 
													
												
													
														| 
															1679
														 | 
														
															 function letsencrypt_renewals { 
														 | 
														
															1679
														 | 
														
															 function letsencrypt_renewals { 
														 | 
													
												
													
														| 
															1680
														 | 
														
															     renewals_script=/etc/cron.monthly/letsencrypt 
														 | 
														
															1680
														 | 
														
															     renewals_script=/etc/cron.monthly/letsencrypt 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1681
														 | 
														
															+    renewals_retry_script=/etc/cron.daily/letsencrypt 
														 | 
													
												
													
														| 
															1681
														 | 
														
															     renewal_failure_msg=$'The certificate for $LETSENCRYPT_DOMAIN could not be renewed' 
														 | 
														
															1682
														 | 
														
															     renewal_failure_msg=$'The certificate for $LETSENCRYPT_DOMAIN could not be renewed' 
														 | 
													
												
													
														| 
															1682
														 | 
														
															     renewal_email_title=$'${PROJECT_NAME} Lets Encrypt certificate renewal' 
														 | 
														
															1683
														 | 
														
															     renewal_email_title=$'${PROJECT_NAME} Lets Encrypt certificate renewal' 
														 | 
													
												
													
														| 
															1683
														 | 
														
															  
														 | 
														
															1684
														 | 
														
															  
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1685
														 | 
														
															+    # the main script tries to renew once per month 
														 | 
													
												
													
														| 
															1684
														 | 
														
															     echo '#!/bin/bash' > $renewals_script 
														 | 
														
															1686
														 | 
														
															     echo '#!/bin/bash' > $renewals_script 
														 | 
													
												
													
														| 
															1685
														 | 
														
															     echo '' >> $renewals_script 
														 | 
														
															1687
														 | 
														
															     echo '' >> $renewals_script 
														 | 
													
												
													
														| 
															1686
														 | 
														
															     echo "PROJECT_NAME='${PROJECT_NAME}'" >> $renewals_script 
														 | 
														
															1688
														 | 
														
															     echo "PROJECT_NAME='${PROJECT_NAME}'" >> $renewals_script 
														 | 
													
												
													
														| 
															1687
														 | 
														
															     echo 'COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt' >> $renewals_script 
														 | 
														
															1689
														 | 
														
															     echo 'COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt' >> $renewals_script 
														 | 
													
												
													
														| 
															1688
														 | 
														
															     echo '' >> $renewals_script 
														 | 
														
															1690
														 | 
														
															     echo '' >> $renewals_script 
														 | 
													
												
													
														| 
															1689
														 | 
														
															     echo 'if [ -d /etc/letsencrypt ]; then' >> $renewals_script 
														 | 
														
															1691
														 | 
														
															     echo 'if [ -d /etc/letsencrypt ]; then' >> $renewals_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1692
														 | 
														
															+    echo '    if [ -f ~/letsencrypt_failed ]; then' >> $renewals_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1693
														 | 
														
															+    echo '        rm ~/letsencrypt_failed' >> $renewals_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1694
														 | 
														
															+    echo '    fi' >> $renewals_script 
														 | 
													
												
													
														| 
															1690
														 | 
														
															     echo -n '    ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | ' >> $renewals_script 
														 | 
														
															1695
														 | 
														
															     echo -n '    ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | ' >> $renewals_script 
														 | 
													
												
													
														| 
															1691
														 | 
														
															     echo -n "awk -F ':' '{print " >> $renewals_script 
														 | 
														
															1696
														 | 
														
															     echo -n "awk -F ':' '{print " >> $renewals_script 
														 | 
													
												
													
														| 
															1692
														 | 
														
															     echo -n '$2' >> $renewals_script 
														 | 
														
															1697
														 | 
														
															     echo -n '$2' >> $renewals_script 
														 | 
													
												
											
												
													
														| 
															
														 | 
														
															 
														 | 
														
															
														 | 
														
															 
														 | 
													
												
													
														| 
															1705
														 | 
														
															     echo -n "                cat ~/temp_renewletsencrypt.txt | mail -s \"${renewal_email_title}\" " >> $renewals_script 
														 | 
														
															1710
														 | 
														
															     echo -n "                cat ~/temp_renewletsencrypt.txt | mail -s \"${renewal_email_title}\" " >> $renewals_script 
														 | 
													
												
													
														| 
															1706
														 | 
														
															     echo '$ADMIN_EMAIL_ADDRESS' >> $renewals_script 
														 | 
														
															1711
														 | 
														
															     echo '$ADMIN_EMAIL_ADDRESS' >> $renewals_script 
														 | 
													
												
													
														| 
															1707
														 | 
														
															     echo '               rm ~/temp_renewletsencrypt.txt' >> $renewals_script 
														 | 
														
															1712
														 | 
														
															     echo '               rm ~/temp_renewletsencrypt.txt' >> $renewals_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1713
														 | 
														
															+    echo '               if [ ! -f ~/letsencrypt_failed ]; then' >> $renewals_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1714
														 | 
														
															+    echo '                   touch ~/letsencrypt_failed' >> $renewals_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1715
														 | 
														
															+    echo '               fi' >> $renewals_script 
														 | 
													
												
													
														| 
															1708
														 | 
														
															     echo '            fi' >> $renewals_script 
														 | 
														
															1716
														 | 
														
															     echo '            fi' >> $renewals_script 
														 | 
													
												
													
														| 
															1709
														 | 
														
															     echo '        fi' >> $renewals_script 
														 | 
														
															1717
														 | 
														
															     echo '        fi' >> $renewals_script 
														 | 
													
												
													
														| 
															1710
														 | 
														
															     echo '    done' >> $renewals_script 
														 | 
														
															1718
														 | 
														
															     echo '    done' >> $renewals_script 
														 | 
													
												
													
														| 
															1711
														 | 
														
															     echo 'fi' >> $renewals_script 
														 | 
														
															1719
														 | 
														
															     echo 'fi' >> $renewals_script 
														 | 
													
												
													
														| 
															1712
														 | 
														
															     chmod +x $renewals_script 
														 | 
														
															1720
														 | 
														
															     chmod +x $renewals_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1721
														 | 
														
															+ 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1722
														 | 
														
															+    # a secondary script keeps trying to renew after a failure 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1723
														 | 
														
															+    echo '#!/bin/bash' > $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1724
														 | 
														
															+    echo '' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1725
														 | 
														
															+    echo "PROJECT_NAME='${PROJECT_NAME}'" >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1726
														 | 
														
															+    echo 'COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1727
														 | 
														
															+    echo '' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1728
														 | 
														
															+    echo 'if [ -d /etc/letsencrypt ]; then' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1729
														 | 
														
															+    echo '    if [ -f ~/letsencrypt_failed ]; then' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1730
														 | 
														
															+    echo '        rm ~/letsencrypt_failed' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1731
														 | 
														
															+    echo -n '        ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | ' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1732
														 | 
														
															+    echo -n "awk -F ':' '{print " >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1733
														 | 
														
															+    echo -n '$2' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1734
														 | 
														
															+    echo "}')" >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1735
														 | 
														
															+    echo '        ADMIN_EMAIL_ADDRESS=$ADMIN_USERNAME@$HOSTNAME' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1736
														 | 
														
															+    echo '        for d in /etc/letsencrypt/live/*/ ; do' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1737
														 | 
														
															+    echo -n '            LETSENCRYPT_DOMAIN=$(echo "$d" | ' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1738
														 | 
														
															+    echo -n "awk -F '/' '{print " >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1739
														 | 
														
															+    echo -n '$5' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1740
														 | 
														
															+    echo "}')" >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1741
														 | 
														
															+    echo '            if [ -f /etc/nginx/sites-available/$LETSENCRYPT_DOMAIN ]; then' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1742
														 | 
														
															+    echo '                ${PROJECT_NAME}-renew-cert -h $LETSENCRYPT_DOMAIN -p letsencrypt' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1743
														 | 
														
															+    echo '                if [ ! "$?" = "0" ]; then' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1744
														 | 
														
															+    echo "                   echo \"${renewal_failure_msg}\n\n\" > ~/temp_renewletsencrypt.txt" >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1745
														 | 
														
															+    echo '                   ${PROJECT_NAME}-renew-cert -h $LETSENCRYPT_DOMAIN -p letsencrypt >> ~/temp_renewletsencrypt.txt' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1746
														 | 
														
															+    echo -n "                    cat ~/temp_renewletsencrypt.txt | mail -s \"${renewal_email_title}\" " >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1747
														 | 
														
															+    echo '$ADMIN_EMAIL_ADDRESS' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1748
														 | 
														
															+    echo '                   rm ~/temp_renewletsencrypt.txt' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1749
														 | 
														
															+    echo '                   if [ ! -f ~/letsencrypt_failed ]; then' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1750
														 | 
														
															+    echo '                       touch ~/letsencrypt_failed' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1751
														 | 
														
															+    echo '                   fi' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1752
														 | 
														
															+    echo '                fi' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1753
														 | 
														
															+    echo '            fi' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1754
														 | 
														
															+    echo '        done' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1755
														 | 
														
															+    echo '    fi' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1756
														 | 
														
															+    echo 'fi' >> $renewals_retry_script 
														 | 
													
												
													
														| 
															
														 | 
														
															 
														 | 
														
															1757
														 | 
														
															+    chmod +x $renewals_retry_script 
														 | 
													
												
													
														| 
															1713
														 | 
														
															 } 
														 | 
														
															1758
														 | 
														
															 } 
														 | 
													
												
													
														| 
															1714
														 | 
														
															  
														 | 
														
															1759
														 | 
														
															  
														 | 
													
												
													
														| 
															1715
														 | 
														
															 function save_firewall_settings { 
														 | 
														
															1760
														 | 
														
															 function save_firewall_settings { 
														 |