Skip to content

Commit 54ea054

Browse files
author
Kristan Kenney
committed
Merge branch 'bugfix/2020-07_v-restore-user' into staging/fixes
2 parents 2fef979 + ce166dd commit 54ea054

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

bin/v-restore-user

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -603,6 +603,67 @@ if [ "$mail" != 'no' ] && [ ! -z "$MAIL_SYSTEM" ]; then
603603
cp -f $tmpdir/mail/$domain/$backup_system/$domain.pub $USER_DATA/mail/
604604
fi
605605

606+
# Restore SSL
607+
check_config=$(grep "DOMAIN='$domain'" $USER_DATA/mail.conf | grep -o "SSL='yes'")
608+
if [ ! -z "$check_config" ]; then
609+
if [ ! -e "$HESTIA/data/users/$user/ssl/" ]; then
610+
mkdir -p $HESTIA/data/users/$user/ssl/
611+
fi
612+
613+
if [ ! -e "$HOMEDIR/$user/conf/mail/$domain/ssl/" ]; then
614+
mkdir -p $HOMEDIR/$user/conf/mail/$domain/ssl/
615+
fi
616+
617+
# Add certificate to Hestia user configuration data directory
618+
if [ -f $tmpdir/mail/$domain/$backup_system/ssl/$domain.crt ]; then
619+
echo "path found"
620+
cp -f $tmpdir/mail/$domain/$backup_system/ssl/$domain.crt $USER_DATA/ssl/mail.$domain.crt
621+
cp -f $tmpdir/mail/$domain/$backup_system/ssl/$domain.key $USER_DATA/ssl/mail.$domain.key
622+
cp -f $tmpdir/mail/$domain/$backup_system/ssl/$domain.crt $USER_DATA/ssl/mail.$domain.pem
623+
if [ -e "$tmpdir/mail/$domain/$backup_system/ssl//$domain.ca" ]; then
624+
cp -f $tmpdir/mail/$domain/$backup_system/ssl//$domain.ca $USER_DATA/ssl/mail.$domain.ca
625+
echo >> $USER_DATA/ssl/mail.$domain.pem
626+
cat $USER_DATA/ssl/mail.$domain.ca >> $USER_DATA/ssl/mail.$domain.pem
627+
fi
628+
fi
629+
630+
chmod 660 $USER_DATA/ssl/mail.$domain.*
631+
632+
# Add certificate to user home directory
633+
cp -f $USER_DATA/ssl/mail.$domain.crt $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.crt
634+
cp -f $USER_DATA/ssl/mail.$domain.key $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.key
635+
cp -f $USER_DATA/ssl/mail.$domain.pem $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.pem
636+
if [ -e "$USER_DATA/ssl/mail.$domain.ca" ]; then
637+
cp -f $USER_DATA/ssl/mail.$domain.ca $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.ca
638+
fi
639+
640+
# Add domain SSL configuration to dovecot
641+
if [ -f /etc/dovecot/conf.d/domains/$domain.conf ]; then
642+
rm -f /etc/dovecot/conf.d/domains/$domain.conf
643+
fi
644+
645+
echo "" >> /etc/dovecot/conf.d/domains/$domain.conf
646+
echo "local_name mail.$domain {" >> /etc/dovecot/conf.d/domains/$domain.conf
647+
echo " ssl_cert = <$HOMEDIR/$user/conf/mail/$domain/ssl/$domain.pem" >> /etc/dovecot/conf.d/domains/$domain.conf
648+
echo " ssl_key = <$HOMEDIR/$user/conf/mail/$domain/ssl/$domain.key" >> /etc/dovecot/conf.d/domains/$domain.conf
649+
echo "}" >> /etc/dovecot/conf.d/domains/$domain.conf
650+
651+
# Add domain SSL configuration to exim4
652+
# Cleanup broken symlinks
653+
find /usr/local/hestia/ssl/mail -xtype l -delete
654+
655+
ln -s -f $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.pem /usr/local/hestia/ssl/mail/mail.$domain.crt
656+
ln -s -f $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.key /usr/local/hestia/ssl/mail/mail.$domain.key
657+
658+
# Set correct permissions on certificates
659+
chmod 750 $HOMEDIR/$user/conf/mail/$domain/ssl
660+
chown -R $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain/ssl
661+
chmod 0644 $HOMEDIR/$user/conf/mail/$domain/ssl/*
662+
chown -h $user:mail $HOMEDIR/$user/conf/mail/$domain/ssl/*
663+
chmod -R 0644 /usr/local/hestia/ssl/mail/*
664+
chown -h $user:mail /usr/local/hestia/ssl/mail/*
665+
fi
666+
606667
# Restoring email accounts
607668
cp -f $tmpdir/mail/$domain/$backup_system/$domain.conf $USER_DATA/mail/
608669

0 commit comments

Comments
 (0)