Просмотр исходного кода

#1913 fix issue where rainloop was unable to get SSL

Jaap Marcus 4 лет назад
Родитель
Сommit
25937dde7d
1 измененных файлов с 25 добавлено и 5 удалено
  1. 25 5
      bin/v-add-letsencrypt-domain

+ 25 - 5
bin/v-add-letsencrypt-domain

@@ -315,11 +315,31 @@ for auth in $authz; do
                 chown -R $user:$user $well_known
             fi
         else
-            well_known="/var/lib/roundcube/.well-known"
-            acme_challenge="$well_known/acme-challenge"
-            mkdir -p $acme_challenge
-            echo "$token.$THUMB" > $acme_challenge/$token
-            chown -R $user:$user $well_known
+            if [ "$WEB_SYSTEM" = 'nginx' ] || [ "$PROXY_SYSTEM" = 'nginx' ]; then
+                conf="$HOMEDIR/$user/conf/mail/$root_domain/nginx.conf_letsencrypt"
+                sconf="$HOMEDIR/$user/conf/mail/$root_domain/nginx.ssl.conf_letsencrypt"
+                echo 'location ~ "^/\.well-known/acme-challenge/([-_A-Za-z0-9]+)$" {' \
+                    > $conf
+                echo '    default_type text/plain;' >> $conf
+                echo '    return 200 "$1.'$THUMB'";' >> $conf
+                echo '}' >> $conf
+                if [ ! -e "$sconf" ]; then
+                    ln -s "$conf" "$sconf"
+                fi
+                if [ ! -z "$PROXY_SYSTEM" ]; then
+                    $BIN/v-restart-proxy
+                    check_result $? "Proxy restart failed" > /dev/null
+                fi
+            else  
+                get_object_value 'mail' 'DOMAIN' "$domain" "WEBMAIL" 
+                if [ ! -z "$WEBMAIL" ]; then 
+                    well_known="/var/lib/$WEBMAIL/.well-known"
+                    acme_challenge="$well_known/acme-challenge"
+                    mkdir -p $acme_challenge
+                    echo "$token.$THUMB" > $acme_challenge/$token
+                    chown -R $user:$user $well_known
+                fi
+            fi
         fi
         if [ "$WEB_SYSTEM" = 'nginx' ]; then
             $BIN/v-restart-web