#!/bin/bash pause () { read -p "$*" } usage () { echo "zmcreatecert v0.1b para Zimbra 5.0.11, por amperisblog[@]gmail.com" echo echo "Uso:" echo " zmcreatecert create" echo echo "Importante:" echo " Si deseas cambiar el tipo de hash por defecto del certificado de MD5 a SHA1, modifica el parametro" echo " [default_md=md5] por [default_md=sha1] dentro de /opt/zimbra/conf/zmssl.cnf.in." echo exit 1; } if [ $# = 0 ]; then usage fi ACTION=$1 shift if [ "$ACTION" = "create" ]; then echo '-> Creando backup de los certificados' cd / tar cf /tmp/zimbra-ssl-bak.tar opt/zimbra/ssl/ tar cf /tmp/zimbra-ssl-conf-bak.tar opt/zimbra/conf/ca/ opt/zimbra/conf/*.crt opt/zimbra/conf/*.key opt/zimbra/java/jre/lib/security/cacerts echo '-> Creando estructura de carpetas SSL' rm -rf /opt/zimbra/ssl mkdir /opt/zimbra/ssl chown zimbra:zimbra /opt/zimbra/ssl echo '-> Eliminado certificado del cacerts keystore' /opt/zimbra/java/bin/keytool -delete -alias my_ca -keystore /opt/zimbra/java/jre/lib/security/cacerts -storepass changeit echo '-> Eliminado certficicado del mailbox keystore' PSW=$(su - zimbra -c 'zmlocalconfig -s -m nokey mailboxd_keystore_password') /opt/zimbra/java/bin/keytool -delete -alias jetty -keystore /opt/zimbra/mailboxd/etc/keystore -storepass ${PSW} echo '-> Creando certificados' /opt/zimbra/bin/zmcertmgr createca -new /opt/zimbra/bin/zmcertmgr deployca -localonly /opt/zimbra/bin/zmcertmgr createcrt self -new /opt/zimbra/bin/zmcertmgr verifycrt self echo '-> Instalando certificados' /opt/zimbra/bin/zmcertmgr deploycrt self echo '-> Comprobando certificados' /opt/zimbra/bin/zmprov -l gcf zimbraCertAuthorityKeySelfSigned /opt/zimbra/bin/zmprov -l gcf zimbraCertAuthorityCertSelfSigned echo echo '-> Ahora voy a reiniciar Zimbra, ¿estas listo/a?' pause 'Enter para continuar...' echo '-> Parando Zimbra...' su - zimbra -c 'zmcontrol stop' echo '-> Arrancando Zimbra...' su - zimbra -c 'zmcontrol start' #echo '-> Comprobando el estado...' #su - zimbra -c 'zmcontrol status' else usage fi exit 0;