Skip to content

Commit 29147d7

Browse files
committed
Add check if domain.com exists in certificate
Prevent issues as hestiacp#2096
1 parent d34931a commit 29147d7

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

func/domain.sh

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -697,20 +697,23 @@ add_mail_ssl_config() {
697697
rm -f /etc/dovecot/conf.d/domains/$domain.conf
698698
fi
699699

700-
echo "" >> /etc/dovecot/conf.d/domains/$domain.conf
701-
echo "local_name $domain {" >> /etc/dovecot/conf.d/domains/$domain.conf
702-
echo " ssl_cert = <$HOMEDIR/$user/conf/mail/$domain/ssl/$domain.pem" >> /etc/dovecot/conf.d/domains/$domain.conf
703-
echo " ssl_key = <$HOMEDIR/$user/conf/mail/$domain/ssl/$domain.key" >> /etc/dovecot/conf.d/domains/$domain.conf
704-
echo "}" >> /etc/dovecot/conf.d/domains/$domain.conf
700+
mail_check=$(v-list-mail-domain-ssl $user $domain | grep SUBJECT | grep " $domain");
701+
mail_check_alias=$(v-list-mail-domain-ssl $user $domain | grep ALIASES | grep " $domain");
702+
if [ ! -z "$mail_check" ] || [ ! -z "$mail_check_alias" ]; then
703+
echo "" >> /etc/dovecot/conf.d/domains/$domain.conf
704+
echo "local_name $domain {" >> /etc/dovecot/conf.d/domains/$domain.conf
705+
echo " ssl_cert = <$HOMEDIR/$user/conf/mail/$domain/ssl/$domain.pem" >> /etc/dovecot/conf.d/domains/$domain.conf
706+
echo " ssl_key = <$HOMEDIR/$user/conf/mail/$domain/ssl/$domain.key" >> /etc/dovecot/conf.d/domains/$domain.conf
707+
echo "}" >> /etc/dovecot/conf.d/domains/$domain.conf
708+
# Add domain SSL configuration to exim4
709+
ln -s $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.pem $HESTIA/ssl/mail/$domain.crt
710+
ln -s $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.key $HESTIA/ssl/mail/$domain.key
711+
fi
705712
echo "" >> /etc/dovecot/conf.d/domains/$domain.conf
706713
echo "local_name mail.$domain {" >> /etc/dovecot/conf.d/domains/$domain.conf
707714
echo " ssl_cert = <$HOMEDIR/$user/conf/mail/$domain/ssl/$domain.pem" >> /etc/dovecot/conf.d/domains/$domain.conf
708715
echo " ssl_key = <$HOMEDIR/$user/conf/mail/$domain/ssl/$domain.key" >> /etc/dovecot/conf.d/domains/$domain.conf
709716
echo "}" >> /etc/dovecot/conf.d/domains/$domain.conf
710-
711-
# Add domain SSL configuration to exim4
712-
ln -s $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.pem $HESTIA/ssl/mail/$domain.crt
713-
ln -s $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.key $HESTIA/ssl/mail/$domain.key
714717
ln -s $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.pem $HESTIA/ssl/mail/mail.$domain.crt
715718
ln -s $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.key $HESTIA/ssl/mail/mail.$domain.key
716719

@@ -725,7 +728,10 @@ add_mail_ssl_config() {
725728

726729
# Delete SSL support for mail domain
727730
del_mail_ssl_config() {
728-
731+
# Do a few checks to prevent accidentally removal of domain.com
732+
mail_check=$(v-list-mail-domain-ssl $user $domain | grep SUBJECT | grep " $domain");
733+
mail_check_alias=$(v-list-mail-domain-ssl $user $domain | grep ALIASES | grep " $domain");
734+
729735
# Remove old mail certificates
730736
rm -f $HOMEDIR/$user/conf/mail/$domain/ssl/*
731737

@@ -739,7 +745,9 @@ del_mail_ssl_config() {
739745

740746
# Remove SSL certificates
741747
rm -f $HOMEDIR/$user/conf/mail/$domain/ssl/*
742-
rm -f $HESTIA/ssl/mail/$domain.crt $HESTIA/ssl/mail/$domain.key
748+
if [ ! -z "$mail_check" ] || [ ! -z "$mail_check_alias" ]; then
749+
rm -f $HESTIA/ssl/mail/$domain.crt $HESTIA/ssl/mail/$domain.key
750+
fi
743751
rm -f $HESTIA/ssl/mail/mail.$domain.crt $HESTIA/ssl/mail/mail.$domain.key
744752
}
745753

0 commit comments

Comments
 (0)