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

Final fix for #2176 (#2514)

* Fix bug in test that did work even it shouldn't

* Move delete / add redirect / force ssl to v-add-letsencrypt domain

Instead

* remove extra code

* Load config

* prevent web domain be loaded for mail
Jaap Marcus 3 лет назад
Родитель
Сommit
dcf6caec2f
3 измененных файлов с 37 добавлено и 26 удалено
  1. 21 0
      bin/v-add-letsencrypt-domain
  2. 0 17
      bin/v-update-letsencrypt-ssl
  3. 16 9
      test/letsencrypt.bats

+ 21 - 0
bin/v-add-letsencrypt-domain

@@ -124,6 +124,19 @@ if [ -n "$mail" ]; then
     if [ -n "$webmail" ]; then
         aliases="$WEBMAIL_ALIAS.$root_domain"
     fi
+else
+    parse_object_kv_list $(grep "DOMAIN='$domain'" $USER_DATA/web.conf)
+    
+    domain_redirect="$REDIRECT"
+    if [[ -n "$domain_redirect"  ]] ; then
+        domain_redirect_code="$REDIRECT_CODE"
+        $BIN/v-delete-web-domain-redirect $user $domain
+    fi
+    
+    domain_forcessl="$SSL_FORCE"
+    if [[ "$domain_forcessl" == 'yes' ]] ; then
+        $BIN/v-delete-web-domain-ssl-force $user $domain
+    fi
 fi
 
 log_file="/var/log/hestia/LE-${user}-${domain}.log"
@@ -541,6 +554,14 @@ if [ -z "$mail" ]; then
     fi
     update_object_value 'web' 'DOMAIN' "$domain" '$LETSENCRYPT' 'yes'
     update_object_value 'web' 'DOMAIN' "$domain" '$LETSENCRYPT_FAIL_COUNT' "0"
+    
+    if [[ "$domain_forcessl" == 'yes' ]] ; then
+        $BIN/v-add-web-domain-ssl-force $user $domain
+    fi
+    if [[ -n "$domain_redirect" ]] ; then
+        $BIN/v-add-web-domain-redirect $user $domain $domain_redirect $domain_redirect_code
+    fi
+
 else
     if [ -z "$LETSENCRYPT" ]; then
         add_object_key "mail" 'DOMAIN' "$root_domain" 'LETSENCRYPT'

+ 0 - 17
bin/v-update-letsencrypt-ssl

@@ -93,17 +93,6 @@ for user in $($HESTIA/bin/v-list-sys-users plain); do
             # Write the filtered alias list to the default var
             aliases=$f_aliases    
 
-            domain_redirect="$REDIRECT"
-            if [[ -n "$domain_redirect"  ]] ; then
-            	domain_redirect_code="$REDIRECT_CODE"
-                $BIN/v-delete-web-domain-redirect $user $domain
-            fi
-
-            domain_forcessl="$SSL_FORCE"
-            if [[ "$domain_forcessl" == 'yes' ]] ; then
-                $BIN/v-delete-web-domain-ssl-force $user $domain
-            fi
-
             msg=$($BIN/v-add-letsencrypt-domain "$user" "$domain" "$aliases")
             if [ $? -ne 0 ]; then
                 echo "$msg"
@@ -117,12 +106,6 @@ for user in $($HESTIA/bin/v-list-sys-users plain); do
             else
                 $BIN/v-log-action "$user" "Info" "Web" "Let's Encrypt SSL certificate renewed (Domain: $domain)."
             fi
-            if [[ "$domain_forcessl" == 'yes' ]] ; then
-                $BIN/v-add-web-domain-ssl-force $user $domain
-            fi
-            if [[ -n "$domain_redirect" ]] ; then
-                $BIN/v-add-web-domain-redirect $user $domain $domain_redirect $domain_redirect_code
-            fi
             
             if [ -n "$UPDATE_HOSTNAME_SSL" ] && [ "$UPDATE_HOSTNAME_SSL" = "yes" ]; then
                 hostname=$(hostname -f)

+ 16 - 9
test/letsencrypt.bats

@@ -74,33 +74,40 @@ function setup() {
     refute_output
 }
 
-@test "[ Redirect ] Add Domain redirect to other website" {
-    run v-add-web-domain-redirect $user $domain "https://hestiacp.com"
+@test "[ Web ] Delete web  domain" {
+    run v-delete-web-domain $user $domain "yes"
     assert_success
     refute_output
 }
 
-@test "[ Redirect ] Request new certificate for web" {
-    run v-add-letsencrypt-domain $user $domain "www.$domain,renewal.$domain"
+@test "[ Redirect ] Create web domain" {
+    run v-add-web-domain $user "redirect.$domain" $ip yes 
     assert_success
     refute_output
 }
 
-@test "[ Redirect ] Run renewal script for LE Redirected domain" {
-    run v-update-letsencrypt-ssl
+@test "[ Redirect ] Add Domain redirect to other website" {
+    run v-add-web-domain-redirect $user "redirect.$domain" "https://hestiacp.com" 301 "yes"
     assert_success
     refute_output
 }
 
+@test "[ Redirect ] Request new certificate for web {
+    run v-add-letsencrypt-domain $user "redirect.$domain" ""
+    assert_success
+    refute_output
+}
 
-@test "[ Redirect ] Delete web ssl Redirected domain" {
-    run v-delete-letsencrypt-domain $user $domain "yes"
+@test "[ Redirect ] Run renewal script for LE Redirected domain" {
+    run v-update-letsencrypt-ssl
     assert_success
     refute_output
 }
 
+
+
 @test "Delete user" {
     run v-delete-user $user
     assert_success
     refute_output
-}
+}