@@ -562,6 +562,79 @@ is_mail_new() {
562562}
563563
564564
565+ # Add mail server SSL configuration
566+ add_mail_ssl_config () {
567+ # Ensure that SSL certificate directories exists
568+ if [ ! -d $HOMEDIR /$user /conf/mail/$domain /ssl/ ]; then
569+ mkdir -p $HOMEDIR /$user /conf/mail/$domain /ssl/
570+ fi
571+
572+ if [ ! -d /usr/local/hestia/ssl/mail ]; then
573+ mkdir -p /usr/local/hestia/ssl/mail
574+ fi
575+
576+ if [ ! -d /etc/dovecot/conf.d/domains ]; then
577+ mkdir -p /etc/dovecot/conf.d/domains
578+ fi
579+
580+ # Add certificate to Hestia user configuration data directory
581+ cp -f $ssl_dir /$domain .crt $USER_DATA /ssl/mail.$domain .crt
582+ cp -f $ssl_dir /$domain .key $USER_DATA /ssl/mail.$domain .key
583+ cp -f $ssl_dir /$domain .crt $USER_DATA /ssl/mail.$domain .pem
584+ if [ -e " $ssl_dir /$domain .ca" ]; then
585+ cp -f $ssl_dir /$domain .ca $USER_DATA /ssl/mail.$domain .ca
586+ echo >> $USER_DATA /ssl/mail.$domain .pem
587+ cat $USER_DATA /ssl/mail.$domain .ca >> $USER_DATA /ssl/mail.$domain .pem
588+ fi
589+
590+ chmod 660 $USER_DATA /ssl/mail.$domain .*
591+
592+ # Add certificate to user home directory
593+ cp -f $USER_DATA /ssl/mail.$domain .crt $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .crt
594+ cp -f $USER_DATA /ssl/mail.$domain .key $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .key
595+ cp -f $USER_DATA /ssl/mail.$domain .pem $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .pem
596+ if [ -e " $USER_DATA /ssl/mail.$domain .ca" ]; then
597+ cp -f $USER_DATA /ssl/mail.$domain .ca $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .ca
598+ fi
599+
600+ # Add domain SSL configuration to dovecot
601+ if [ -f /etc/dovecot/conf.d/domains/$domain .conf ]; then
602+ rm -f /etc/dovecot/conf.d/domains/$domain .conf
603+ fi
604+
605+ echo " " >> /etc/dovecot/conf.d/domains/$domain .conf
606+ echo " local_name mail.$domain {" >> /etc/dovecot/conf.d/domains/$domain .conf
607+ echo " ssl_cert = <$HOMEDIR /$user /conf/mail/$domain /ssl/$domain .pem" >> /etc/dovecot/conf.d/domains/$domain .conf
608+ echo " ssl_key = <$HOMEDIR /$user /conf/mail/$domain /ssl/$domain .key" >> /etc/dovecot/conf.d/domains/$domain .conf
609+ echo " }" >> /etc/dovecot/conf.d/domains/$domain .conf
610+
611+ # Add domain SSL configuration to exim4
612+ ln -s $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .pem /usr/local/hestia/ssl/mail/mail.$domain .crt
613+ ln -s $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .key /usr/local/hestia/ssl/mail/mail.$domain .key
614+
615+ # Set correct permissions on certificates
616+ chmod 0644 $HOMEDIR /$user /conf/mail/$domain /ssl/*
617+ chown -h $user :mail $HOMEDIR /$user /conf/mail/$domain /ssl/*
618+ chmod -R 0644 /usr/local/hestia/ssl/mail/*
619+ chown -h $user :mail /usr/local/hestia/ssl/mail/*
620+ }
621+
622+ # Delete SSL support for mail domain
623+ del_mail_ssl_config () {
624+ # Remove dovecot configuration
625+ rm -f /etc/dovecot/conf.d/domains/mail.$domain .conf
626+
627+ # Remove SSL vhost configuration
628+ rm -f $HOMEDIR /$user /conf/mail/$domain /* .ssl.conf
629+ rm -f /etc/$WEB_SYSTEM /conf.d/domains/$WEBMAIL_ALIAS .$domain .ssl.conf
630+ rm -f /etc/$PROXY_SYSTEM /conf.d/domains/$WEBMAIL_ALIAS .$domain .ssl.conf
631+
632+ # Remove SSL certificates
633+ rm -f $HOMEDIR /$user /conf/mail/$domain /ssl/*
634+ rm -f $USER_DATA /ssl/mail.$domain .*
635+ rm -f /usr/local/hestia/ssl/mail/mail.$domain .*
636+ }
637+
565638# ----------------------------------------------------------#
566639# CMN #
567640# ----------------------------------------------------------#
0 commit comments