Skip to content

Instantly share code, notes, and snippets.

@zetc0de
Last active July 17, 2019 00:15
Show Gist options
  • Save zetc0de/19473954367509b8177af103fbcd61c4 to your computer and use it in GitHub Desktop.
Save zetc0de/19473954367509b8177af103fbcd61c4 to your computer and use it in GitHub Desktop.
Script Renew SSL Letsencrypt Pada Zimbra
#!/bin/bash
green='\e[0;34m'
red='\e[1;31m'
RESET="\033[00m" #normal
# if [[ $EUID -ne 0 ]]
# then
# echo -e "${red}This script must run as root!"
# echo -e "Bye...$RESET"
# exit 1
# fi
# function checkDomain {
# echo -ne "${green}Check /etc/letsencrypt/live/ Folder...${RESET}"
# for i in $(ls /etc/letsencrypt/live)
# then
# echo "- $i"
# }
function setDomain {
# checkDomain
echo -ne "${green}Enter Domain : "
read domain
}
# export domain=""
function backup {
echo -e "${green}Backup SSL Zimbra...${RESET}"
mkdir -p /opt/zimbra/ssl/zimbra-backupssl.$(date "+%Y%m%d")
cp -r /opt/zimbra/ssl/zimbra /opt/zimbra/ssl/zimbra-backupssl.$(date "+%Y%m%d")
rm -f /opt/zimbra/ssl/zimbra/* >/dev/null 2>&1
}
function renew {
echo -e "${green}Stop Service Zimbra...${RESET}"
su - zimbra -c 'zmcontrol stop'
backup
setDomain
rm -f /opt/zimbra/ssl/letsencrypt/*.pem
mkdir -p /etc/zimbra/ssl/letsencrypt
certbot renew >/dev/null 2>&1
chown -R zimbra:zimbra /opt/zimbra/ssl/letsencrypt/
cat /etc/letsencrypt/live/${domain}/chain.pem > /opt/zimbra/ssl/letsencrypt/chain.pem
cat /etc/letsencrypt/live/${domain}/cert.pem > /opt/zimbra/ssl/letsencrypt/cert.pem
cat /etc/letsencrypt/live/${domain}/fullchain.pem > /opt/zimbra/ssl/letsencrypt/fullchain.pem
cat /etc/letsencrypt/live/${domain}/privkey.pem > /opt/zimbra/ssl/letsencrypt/privkey.pem
cat ~/root-ca.pem >> /opt/zimbra/ssl/letsencrypt/chain.pem
su - zimbra -c "cd /opt/zimbra/ssl/letsencrypt/ && zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem >/dev/null 2>&1"
cp /opt/zimbra/ssl/letsencrypt/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key
cd /opt/zimbra/ssl/letsencrypt/
echo -e "${green}Deploy Zimbra SSL...${RESET}"
su - zimbra -c "cd /opt/zimbra/ssl/letsencrypt/ && zmcertmgr deploycrt comm cert.pem chain.pem >/dev/null 2>&1"
echo -e "${green}Start Service Zimbra...${RESET}"
su - zimbra -c 'zmcontrol start'
}
renew
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment