Kristan Kenney 7 лет назад
Родитель
Сommit
b200398f91
1 измененных файлов с 87 добавлено и 84 удалено
  1. 87 84
      func/domain.sh

+ 87 - 84
func/domain.sh

@@ -580,6 +580,91 @@ is_mail_new() {
     fi
 }
 
+
+# Add mail server SSL configuration
+add_mail_ssl_config() {
+     # Ensure that SSL certificate directories exists
+    if [ ! -d $HOMEDIR/$user/conf/mail/$domain/ssl/ ]; then
+        mkdir -p $HOMEDIR/$user/conf/mail/$domain/ssl/
+    fi
+
+    if [ ! -d /usr/local/hestia/ssl/mail ]; then
+        mkdir -p /usr/local/hestia/ssl/mail
+    fi
+
+    if [ ! -d /etc/dovecot/conf.d/domains ]; then
+        mkdir -p /etc/dovecot/conf.d/domains
+    fi
+
+    # Add certificate to Hestia user configuration data directory
+    if [ -f $ssl_dir/$domain.crt ]; then
+        cp -f $ssl_dir/$domain.crt $USER_DATA/ssl/mail.$domain.crt
+        cp -f $ssl_dir/$domain.key $USER_DATA/ssl/mail.$domain.key
+        cp -f $ssl_dir/$domain.crt $USER_DATA/ssl/mail.$domain.pem
+        if [ -e "$ssl_dir/$domain.ca" ]; then
+            cp -f $ssl_dir/$domain.ca $USER_DATA/ssl/mail.$domain.ca
+            echo >> $USER_DATA/ssl/mail.$domain.pem
+            cat $USER_DATA/ssl/mail.$domain.ca >> $USER_DATA/ssl/mail.$domain.pem
+        fi
+    fi
+    
+    chmod 660 $USER_DATA/ssl/mail.$domain.*
+
+    # Add certificate to user home directory
+    cp -f $USER_DATA/ssl/mail.$domain.crt $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.crt
+    cp -f $USER_DATA/ssl/mail.$domain.key $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.key
+    cp -f $USER_DATA/ssl/mail.$domain.pem $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.pem
+    if [ -e "$USER_DATA/ssl/mail.$domain.ca" ]; then
+        cp -f $USER_DATA/ssl/mail.$domain.ca $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.ca
+    fi
+
+    # Add domain SSL configuration to dovecot
+    if [ -f /etc/dovecot/conf.d/domains/$domain.conf ]; then
+        rm -f /etc/dovecot/conf.d/domains/$domain.conf
+    fi
+    
+    echo "" >> /etc/dovecot/conf.d/domains/$domain.conf
+    echo "local_name mail.$domain {" >> /etc/dovecot/conf.d/domains/$domain.conf
+    echo "  ssl_cert = <$HOMEDIR/$user/conf/mail/$domain/ssl/$domain.pem" >> /etc/dovecot/conf.d/domains/$domain.conf
+    echo "  ssl_key = <$HOMEDIR/$user/conf/mail/$domain/ssl/$domain.key" >> /etc/dovecot/conf.d/domains/$domain.conf
+    echo "}" >> /etc/dovecot/conf.d/domains/$domain.conf
+
+    # Add domain SSL configuration to exim4
+    ln -s $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.pem /usr/local/hestia/ssl/mail/mail.$domain.crt
+    ln -s $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.key /usr/local/hestia/ssl/mail/mail.$domain.key
+
+    # Set correct permissions on certificates
+    chmod 0644 $HOMEDIR/$user/conf/mail/$domain/ssl/*
+    chown -h $user:mail $HOMEDIR/$user/conf/mail/$domain/ssl/*
+    chmod -R 0644 /usr/local/hestia/ssl/mail/*
+    chown -h $user:mail /usr/local/hestia/ssl/mail/*
+}
+
+# Delete SSL support for mail domain
+del_mail_ssl_config() {
+    
+    # Remove old mail certificates
+    rm -f $HOMEDIR/$user/conf/mail/$domain/ssl/*
+
+    # Remove dovecot configuration
+    rm -f /etc/dovecot/conf.d/domains/mail.$domain.conf
+
+    # Remove SSL vhost configuration
+    rm -f $HOMEDIR/$user/conf/mail/$domain/*.*ssl.conf
+    rm -f /etc/$WEB_SYSTEM/conf.d/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
+    rm -f /etc/$PROXY_SYSTEM/conf.d/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
+
+    # Remove SSL certificates
+    rm -f $HOMEDIR/$user/conf/mail/$domain/ssl/*
+    rm -f /usr/local/hestia/ssl/mail/mail.$domain.*
+}
+
+# Delete generated certificates from user configuration data directory
+del_mail_ssl_certificates(){
+    rm -f $USER_DATA/ssl/mail.$domain.*
+    rm -f $HOMEDIR/$user/conf/mail/$domain/ssl/*
+}
+
 # Add webmail config
 add_webmail_config() {
     mkdir -p "$HOMEDIR/$user/conf/mail/$domain"
@@ -668,88 +753,6 @@ add_webmail_config() {
     fi
 }
 
-# Add mail server SSL configuration
-add_mail_ssl_config() {
-     # Ensure that SSL certificate directories exists
-    if [ ! -d $HOMEDIR/$user/conf/mail/$domain/ssl/ ]; then
-        mkdir -p $HOMEDIR/$user/conf/mail/$domain/ssl/
-    fi
-
-    if [ ! -d /usr/local/hestia/ssl/mail ]; then
-        mkdir -p /usr/local/hestia/ssl/mail
-    fi
-
-    if [ ! -d /etc/dovecot/conf.d/domains ]; then
-        mkdir -p /etc/dovecot/conf.d/domains
-    fi
-
-    # Add certificate to Hestia user configuration data directory
-    cp -f $ssl_dir/$domain.crt $USER_DATA/ssl/mail.$domain.crt
-    cp -f $ssl_dir/$domain.key $USER_DATA/ssl/mail.$domain.key
-    cp -f $ssl_dir/$domain.crt $USER_DATA/ssl/mail.$domain.pem
-    if [ -e "$ssl_dir/$domain.ca" ]; then
-        cp -f $ssl_dir/$domain.ca $USER_DATA/ssl/mail.$domain.ca
-        echo >> $USER_DATA/ssl/mail.$domain.pem
-        cat $USER_DATA/ssl/mail.$domain.ca >> $USER_DATA/ssl/mail.$domain.pem
-    fi
-
-    chmod 660 $USER_DATA/ssl/mail.$domain.*
-
-    # Add certificate to user home directory
-    cp -f $USER_DATA/ssl/mail.$domain.crt $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.crt
-    cp -f $USER_DATA/ssl/mail.$domain.key $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.key
-    cp -f $USER_DATA/ssl/mail.$domain.pem $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.pem
-    if [ -e "$USER_DATA/ssl/mail.$domain.ca" ]; then
-        cp -f $USER_DATA/ssl/mail.$domain.ca $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.ca
-    fi
-
-    # Add domain SSL configuration to dovecot
-    if [ -f /etc/dovecot/conf.d/domains/$domain.conf ]; then
-        rm -f /etc/dovecot/conf.d/domains/$domain.conf
-    fi
-    
-    echo "" >> /etc/dovecot/conf.d/domains/$domain.conf
-    echo "local_name mail.$domain {" >> /etc/dovecot/conf.d/domains/$domain.conf
-    echo "  ssl_cert = <$HOMEDIR/$user/conf/mail/$domain/ssl/$domain.pem" >> /etc/dovecot/conf.d/domains/$domain.conf
-    echo "  ssl_key = <$HOMEDIR/$user/conf/mail/$domain/ssl/$domain.key" >> /etc/dovecot/conf.d/domains/$domain.conf
-    echo "}" >> /etc/dovecot/conf.d/domains/$domain.conf
-
-    # Add domain SSL configuration to exim4
-    ln -s $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.pem /usr/local/hestia/ssl/mail/mail.$domain.crt
-    ln -s $HOMEDIR/$user/conf/mail/$domain/ssl/$domain.key /usr/local/hestia/ssl/mail/mail.$domain.key
-
-    # Set correct permissions on certificates
-    chmod 0644 $HOMEDIR/$user/conf/mail/$domain/ssl/*
-    chown -h $user:mail $HOMEDIR/$user/conf/mail/$domain/ssl/*
-    chmod -R 0644 /usr/local/hestia/ssl/mail/*
-    chown -h $user:mail /usr/local/hestia/ssl/mail/*
-}
-
-# Delete SSL support for mail domain
-del_mail_ssl_config() {
-    
-    # Remove old mail certificates
-    rm -f $HOMEDIR/$user/conf/mail/$domain/ssl/*
-
-    # Remove dovecot configuration
-    rm -f /etc/dovecot/conf.d/domains/mail.$domain.conf
-
-    # Remove SSL vhost configuration
-    rm -f $HOMEDIR/$user/conf/mail/$domain/*.*ssl.conf
-    rm -f /etc/$WEB_SYSTEM/conf.d/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
-    rm -f /etc/$PROXY_SYSTEM/conf.d/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
-
-    # Remove SSL certificates
-    rm -f $HOMEDIR/$user/conf/mail/$domain/ssl/*
-    rm -f /usr/local/hestia/ssl/mail/mail.$domain.*
-}
-
-# Delete generated certificates from user configuration data directory
-del_mail_ssl_certificates(){
-    rm -f $USER_DATA/ssl/mail.$domain.*
-    rm -f $HOMEDIR/$user/conf/mail/$domain/ssl/*
-}
-
 # Delete webmail support
 del_webmail_config() {
     if [ ! -z "$WEB_SYSTEM" ]; then 
@@ -770,12 +773,12 @@ del_webmail_config() {
 # Delete SSL webmail support
 del_webmail_ssl_config() {
     if [ ! -z "$WEB_SYSTEM" ]; then 
-        rm -f $HOMEDIR/$user/conf/mail/$domain/$WEB_SYSTEM.ssl.conf
+        rm -f $HOMEDIR/$user/conf/mail/$domain/$WEB_SYSTEM.*ssl.conf
         rm -f /etc/$WEB_SYSTEM/conf.d/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
     fi
     
     if [ ! -z "$PROXY_SYSTEM" ]; then
-        rm -f $HOMEDIR/$user/conf/mail/$domain/$PROXY_SYSTEM.ssl.conf
+        rm -f $HOMEDIR/$user/conf/mail/$domain/$PROXY_SYSTEM.*ssl.conf
         rm -f /etc/$PROXY_SYSTEM/conf.d/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
     fi
 }