@@ -580,6 +580,91 @@ is_mail_new() {
580580 fi
581581}
582582
583+
584+ # Add mail server SSL configuration
585+ add_mail_ssl_config () {
586+ # Ensure that SSL certificate directories exists
587+ if [ ! -d $HOMEDIR /$user /conf/mail/$domain /ssl/ ]; then
588+ mkdir -p $HOMEDIR /$user /conf/mail/$domain /ssl/
589+ fi
590+
591+ if [ ! -d /usr/local/hestia/ssl/mail ]; then
592+ mkdir -p /usr/local/hestia/ssl/mail
593+ fi
594+
595+ if [ ! -d /etc/dovecot/conf.d/domains ]; then
596+ mkdir -p /etc/dovecot/conf.d/domains
597+ fi
598+
599+ # Add certificate to Hestia user configuration data directory
600+ if [ -f $ssl_dir /$domain .crt ]; then
601+ cp -f $ssl_dir /$domain .crt $USER_DATA /ssl/mail.$domain .crt
602+ cp -f $ssl_dir /$domain .key $USER_DATA /ssl/mail.$domain .key
603+ cp -f $ssl_dir /$domain .crt $USER_DATA /ssl/mail.$domain .pem
604+ if [ -e " $ssl_dir /$domain .ca" ]; then
605+ cp -f $ssl_dir /$domain .ca $USER_DATA /ssl/mail.$domain .ca
606+ echo >> $USER_DATA /ssl/mail.$domain .pem
607+ cat $USER_DATA /ssl/mail.$domain .ca >> $USER_DATA /ssl/mail.$domain .pem
608+ fi
609+ fi
610+
611+ chmod 660 $USER_DATA /ssl/mail.$domain .*
612+
613+ # Add certificate to user home directory
614+ cp -f $USER_DATA /ssl/mail.$domain .crt $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .crt
615+ cp -f $USER_DATA /ssl/mail.$domain .key $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .key
616+ cp -f $USER_DATA /ssl/mail.$domain .pem $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .pem
617+ if [ -e " $USER_DATA /ssl/mail.$domain .ca" ]; then
618+ cp -f $USER_DATA /ssl/mail.$domain .ca $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .ca
619+ fi
620+
621+ # Add domain SSL configuration to dovecot
622+ if [ -f /etc/dovecot/conf.d/domains/$domain .conf ]; then
623+ rm -f /etc/dovecot/conf.d/domains/$domain .conf
624+ fi
625+
626+ echo " " >> /etc/dovecot/conf.d/domains/$domain .conf
627+ echo " local_name mail.$domain {" >> /etc/dovecot/conf.d/domains/$domain .conf
628+ echo " ssl_cert = <$HOMEDIR /$user /conf/mail/$domain /ssl/$domain .pem" >> /etc/dovecot/conf.d/domains/$domain .conf
629+ echo " ssl_key = <$HOMEDIR /$user /conf/mail/$domain /ssl/$domain .key" >> /etc/dovecot/conf.d/domains/$domain .conf
630+ echo " }" >> /etc/dovecot/conf.d/domains/$domain .conf
631+
632+ # Add domain SSL configuration to exim4
633+ ln -s $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .pem /usr/local/hestia/ssl/mail/mail.$domain .crt
634+ ln -s $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .key /usr/local/hestia/ssl/mail/mail.$domain .key
635+
636+ # Set correct permissions on certificates
637+ chmod 0644 $HOMEDIR /$user /conf/mail/$domain /ssl/*
638+ chown -h $user :mail $HOMEDIR /$user /conf/mail/$domain /ssl/*
639+ chmod -R 0644 /usr/local/hestia/ssl/mail/*
640+ chown -h $user :mail /usr/local/hestia/ssl/mail/*
641+ }
642+
643+ # Delete SSL support for mail domain
644+ del_mail_ssl_config () {
645+
646+ # Remove old mail certificates
647+ rm -f $HOMEDIR /$user /conf/mail/$domain /ssl/*
648+
649+ # Remove dovecot configuration
650+ rm -f /etc/dovecot/conf.d/domains/mail.$domain .conf
651+
652+ # Remove SSL vhost configuration
653+ rm -f $HOMEDIR /$user /conf/mail/$domain /* .* ssl.conf
654+ rm -f /etc/$WEB_SYSTEM /conf.d/domains/$WEBMAIL_ALIAS .$domain .ssl.conf
655+ rm -f /etc/$PROXY_SYSTEM /conf.d/domains/$WEBMAIL_ALIAS .$domain .ssl.conf
656+
657+ # Remove SSL certificates
658+ rm -f $HOMEDIR /$user /conf/mail/$domain /ssl/*
659+ rm -f /usr/local/hestia/ssl/mail/mail.$domain .*
660+ }
661+
662+ # Delete generated certificates from user configuration data directory
663+ del_mail_ssl_certificates (){
664+ rm -f $USER_DATA /ssl/mail.$domain .*
665+ rm -f $HOMEDIR /$user /conf/mail/$domain /ssl/*
666+ }
667+
583668# Add webmail config
584669add_webmail_config () {
585670 mkdir -p " $HOMEDIR /$user /conf/mail/$domain "
@@ -668,88 +753,6 @@ add_webmail_config() {
668753 fi
669754}
670755
671- # Add mail server SSL configuration
672- add_mail_ssl_config () {
673- # Ensure that SSL certificate directories exists
674- if [ ! -d $HOMEDIR /$user /conf/mail/$domain /ssl/ ]; then
675- mkdir -p $HOMEDIR /$user /conf/mail/$domain /ssl/
676- fi
677-
678- if [ ! -d /usr/local/hestia/ssl/mail ]; then
679- mkdir -p /usr/local/hestia/ssl/mail
680- fi
681-
682- if [ ! -d /etc/dovecot/conf.d/domains ]; then
683- mkdir -p /etc/dovecot/conf.d/domains
684- fi
685-
686- # Add certificate to Hestia user configuration data directory
687- cp -f $ssl_dir /$domain .crt $USER_DATA /ssl/mail.$domain .crt
688- cp -f $ssl_dir /$domain .key $USER_DATA /ssl/mail.$domain .key
689- cp -f $ssl_dir /$domain .crt $USER_DATA /ssl/mail.$domain .pem
690- if [ -e " $ssl_dir /$domain .ca" ]; then
691- cp -f $ssl_dir /$domain .ca $USER_DATA /ssl/mail.$domain .ca
692- echo >> $USER_DATA /ssl/mail.$domain .pem
693- cat $USER_DATA /ssl/mail.$domain .ca >> $USER_DATA /ssl/mail.$domain .pem
694- fi
695-
696- chmod 660 $USER_DATA /ssl/mail.$domain .*
697-
698- # Add certificate to user home directory
699- cp -f $USER_DATA /ssl/mail.$domain .crt $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .crt
700- cp -f $USER_DATA /ssl/mail.$domain .key $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .key
701- cp -f $USER_DATA /ssl/mail.$domain .pem $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .pem
702- if [ -e " $USER_DATA /ssl/mail.$domain .ca" ]; then
703- cp -f $USER_DATA /ssl/mail.$domain .ca $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .ca
704- fi
705-
706- # Add domain SSL configuration to dovecot
707- if [ -f /etc/dovecot/conf.d/domains/$domain .conf ]; then
708- rm -f /etc/dovecot/conf.d/domains/$domain .conf
709- fi
710-
711- echo " " >> /etc/dovecot/conf.d/domains/$domain .conf
712- echo " local_name mail.$domain {" >> /etc/dovecot/conf.d/domains/$domain .conf
713- echo " ssl_cert = <$HOMEDIR /$user /conf/mail/$domain /ssl/$domain .pem" >> /etc/dovecot/conf.d/domains/$domain .conf
714- echo " ssl_key = <$HOMEDIR /$user /conf/mail/$domain /ssl/$domain .key" >> /etc/dovecot/conf.d/domains/$domain .conf
715- echo " }" >> /etc/dovecot/conf.d/domains/$domain .conf
716-
717- # Add domain SSL configuration to exim4
718- ln -s $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .pem /usr/local/hestia/ssl/mail/mail.$domain .crt
719- ln -s $HOMEDIR /$user /conf/mail/$domain /ssl/$domain .key /usr/local/hestia/ssl/mail/mail.$domain .key
720-
721- # Set correct permissions on certificates
722- chmod 0644 $HOMEDIR /$user /conf/mail/$domain /ssl/*
723- chown -h $user :mail $HOMEDIR /$user /conf/mail/$domain /ssl/*
724- chmod -R 0644 /usr/local/hestia/ssl/mail/*
725- chown -h $user :mail /usr/local/hestia/ssl/mail/*
726- }
727-
728- # Delete SSL support for mail domain
729- del_mail_ssl_config () {
730-
731- # Remove old mail certificates
732- rm -f $HOMEDIR /$user /conf/mail/$domain /ssl/*
733-
734- # Remove dovecot configuration
735- rm -f /etc/dovecot/conf.d/domains/mail.$domain .conf
736-
737- # Remove SSL vhost configuration
738- rm -f $HOMEDIR /$user /conf/mail/$domain /* .* ssl.conf
739- rm -f /etc/$WEB_SYSTEM /conf.d/domains/$WEBMAIL_ALIAS .$domain .ssl.conf
740- rm -f /etc/$PROXY_SYSTEM /conf.d/domains/$WEBMAIL_ALIAS .$domain .ssl.conf
741-
742- # Remove SSL certificates
743- rm -f $HOMEDIR /$user /conf/mail/$domain /ssl/*
744- rm -f /usr/local/hestia/ssl/mail/mail.$domain .*
745- }
746-
747- # Delete generated certificates from user configuration data directory
748- del_mail_ssl_certificates (){
749- rm -f $USER_DATA /ssl/mail.$domain .*
750- rm -f $HOMEDIR /$user /conf/mail/$domain /ssl/*
751- }
752-
753756# Delete webmail support
754757del_webmail_config () {
755758 if [ ! -z " $WEB_SYSTEM " ]; then
@@ -770,12 +773,12 @@ del_webmail_config() {
770773# Delete SSL webmail support
771774del_webmail_ssl_config () {
772775 if [ ! -z " $WEB_SYSTEM " ]; then
773- rm -f $HOMEDIR /$user /conf/mail/$domain /$WEB_SYSTEM .ssl.conf
776+ rm -f $HOMEDIR /$user /conf/mail/$domain /$WEB_SYSTEM .* ssl.conf
774777 rm -f /etc/$WEB_SYSTEM /conf.d/domains/$WEBMAIL_ALIAS .$domain .ssl.conf
775778 fi
776779
777780 if [ ! -z " $PROXY_SYSTEM " ]; then
778- rm -f $HOMEDIR /$user /conf/mail/$domain /$PROXY_SYSTEM .ssl.conf
781+ rm -f $HOMEDIR /$user /conf/mail/$domain /$PROXY_SYSTEM .* ssl.conf
779782 rm -f /etc/$PROXY_SYSTEM /conf.d/domains/$WEBMAIL_ALIAS .$domain .ssl.conf
780783 fi
781784}
0 commit comments