Skip to content

Commit 184a22a

Browse files
LupulKristan Kenney
authored andcommitted
Bugfix 0505 forcessl (hestiacp#290)
* Change forcessl object key in web.conf - Fixes an issue where forcessl is wrongly enabled when SSL is added to a web domain * Upgrade script: Added migration for web object key change (FORCESSL -> SSL_FORCE)
1 parent 2affbcf commit 184a22a

File tree

7 files changed

+43
-20
lines changed

7 files changed

+43
-20
lines changed

bin/v-add-web-domain

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ date=$(echo "$time_n_date" |cut -f 2 -d \ )
165165

166166
# Adding domain in web.conf
167167
echo "DOMAIN='$domain' IP='$ip' IP6='' ALIAS='$ALIAS' TPL='$WEB_TEMPLATE'\
168-
SSL='no' FORCESSL='no' SSL_HOME='same' LETSENCRYPT='no' FTP_USER='' FTP_MD5=''\
168+
SSL='no' SSL_FORCE='no' SSL_HOME='same' LETSENCRYPT='no' FTP_USER='' FTP_MD5=''\
169169
BACKEND='$BACKEND_TEMPLATE' PROXY='$PROXY_TEMPLATE' PROXY_EXT='$PROXY_EXT'\
170170
STATS='' STATS_USER='' STATS_CRYPT='' U_DISK='0' U_BANDWIDTH='0'\
171171
SUSPENDED='no' TIME='$time' DATE='$date'" >> $USER_DATA/web.conf

bin/v-add-web-domain-ssl-force

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,12 @@ fi
6868
# Hestia #
6969
#----------------------------------------------------------#
7070

71-
if [ -z "$FORCESSL" ]; then
72-
add_object_key "web" 'DOMAIN' "$domain" 'FORCESSL' 'SSL'
71+
if [ -z "$SSL_FORCE" ]; then
72+
add_object_key "web" 'DOMAIN' "$domain" 'SSL_FORCE' 'SSL_HOME'
7373
fi
7474

7575
# Set forcessl flag to enabled
76-
update_object_value 'web' 'DOMAIN' "$domain" '$FORCESSL' 'yes'
76+
update_object_value 'web' 'DOMAIN' "$domain" '$SSL_FORCE' 'yes'
7777

7878
# Restart web server
7979
$BIN/v-restart-web

bin/v-delete-web-domain-ssl-force

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ is_object_valid 'user' 'USER' "$user"
2828
is_object_unsuspended 'user' 'USER' "$user"
2929
is_object_valid 'web' 'DOMAIN' "$domain"
3030
is_object_unsuspended 'web' 'DOMAIN' "$domain"
31-
is_object_valid 'web' 'DOMAIN' "$domain" "$FORCESSL"
31+
is_object_valid 'web' 'DOMAIN' "$domain" "$SSL_FORCE"
3232

3333
#----------------------------------------------------------#
3434
# Action #
@@ -49,11 +49,11 @@ fi
4949
# Hestia #
5050
#----------------------------------------------------------#
5151

52-
if [ -z "$FORCESSL" ]; then
53-
add_object_key "web" 'DOMAIN' "$domain" 'FORCESSL' 'SSL'
52+
if [ -z "$SSL_FORCE" ]; then
53+
add_object_key "web" 'DOMAIN' "$domain" 'SSL_FORCE' 'SSL_HOME'
5454
fi
5555

56-
update_object_value 'web' 'DOMAIN' "$domain" '$FORCESSL' 'no'
56+
update_object_value 'web' 'DOMAIN' "$domain" '$SSL_FORCE' 'no'
5757

5858
# Restart services if requested
5959
if [ ! -z "$restart" ]; then

bin/v-list-web-domain

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ json_list() {
3030
"STATS": "'$STATS'",
3131
"STATS_USER": "'$STATS_USER'",
3232
"SSL": "'$SSL'",
33-
"FORCESSL": "'$FORCESSL'",
33+
"SSL_FORCE": "'$SSL_FORCE'",
3434
"SSL_HOME": "'$SSL_HOME'",
3535
"LETSENCRYPT": "'$LETSENCRYPT'",
3636
"FTP_USER": "'$FTP_USER'",
@@ -61,8 +61,8 @@ shell_list() {
6161
if [ ! -z "$LETSENCRYPT" ] && [ "$LETSENCRYPT" != 'no' ]; then
6262
echo "LETSENCRYPT: $LETSENCRYPT"
6363
fi
64-
if [ ! -z "$FORCESSL" ]; then
65-
echo "FORCESSL: $FORCESSL"
64+
if [ ! -z "$SSL_FORCE" ]; then
65+
echo "SSL_FORCE: $SSL_FORCE"
6666
fi
6767
fi
6868
echo "TEMPLATE: $TPL"
@@ -92,18 +92,18 @@ shell_list() {
9292
# PLAIN list function
9393
plain_list() {
9494
echo -ne "$DOMAIN\t$IP\t$IP6\t$U_DISK\t$U_BANDWIDTH\t$TPL\t"
95-
echo -ne "$ALIAS\t$STATS\t$STATS_USER\t$SSL\t$FORCESSL\t$SSL_HOME\t,$LETSENCRYPT"
95+
echo -ne "$ALIAS\t$STATS\t$STATS_USER\t$SSL\t$SSL_FORCE\t$SSL_HOME\t,$LETSENCRYPT"
9696
echo -ne "$FTP_USER\t$FTP_PATH\t$AUTH_USER\t$BACKEND\t$PROXY\t"
9797
echo -e "$PROXY_EXT\t$SUSPENDED\t$TIME\t$DATE"
9898
}
9999

100100
# CSV list function
101101
csv_list() {
102102
echo -n "DOMAIN,IP,IP6,U_DISK,U_BANDWIDTH,TPL,ALIAS,STATS,STATS_USER,SSL,"
103-
echo -n "FORCESSL,SSL_HOME,LETSENCRYPT,FTP_USER,FTP_PATH,AUTH_USER,BACKEND,PROXY,PROXY_EXT,"
103+
echo -n "SSL_FORCE,SSL_HOME,LETSENCRYPT,FTP_USER,FTP_PATH,AUTH_USER,BACKEND,PROXY,PROXY_EXT,"
104104
echo "SUSPENDED,TIME,DATE"
105105
echo -n "$DOMAIN,$IP,$IP6,$U_DISK,$U_BANDWIDTH,$TPL,\"$ALIAS\",$STATS"
106-
echo -n "\"$STATS_USER\",$SSL,$SSL_HOME,$LETSENCRYPT,\"$FTP_USER\",\"$FTP_PATH\","
106+
echo -n "\"$STATS_USER\",$SSL,$SSL_FORCE,$SSL_HOME,$LETSENCRYPT,\"$FTP_USER\",\"$FTP_PATH\","
107107
echo -n "\"$AUTH_USER\",$BACKEND,$PROXY,\"$PROXY_EXT\",$SUSPENDED,$TIME,"
108108
echo "$DATE"
109109
}

bin/v-list-web-domain-ssl

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ json_list() {
3232
echo " \"SIGNATURE\": \"$signature\","
3333
echo " \"PUB_KEY\": \"$pub_key\","
3434
echo " \"ISSUER\": \"$issuer\","
35-
echo " \"FORCESSL\": \"$forcessl\""
35+
echo " \"SSL_FORCE\": \"$SSL_FORCE\""
3636
echo -e "\t}\n}"
3737
}
3838

@@ -59,7 +59,7 @@ shell_list() {
5959
echo "SIGNATURE: $signature"
6060
echo "PUB_KEY: $pub_key"
6161
echo "ISSUER: $issuer"
62-
echo "FORCESSL: $forcessl"
62+
echo "SSL_FORCE: $SSL_FORCE"
6363
fi
6464
}
6565

@@ -82,17 +82,17 @@ plain_list() {
8282
echo "$signature"
8383
echo "$pub_key"
8484
echo "$issuer"
85-
echo "$forcessl"
85+
echo "$SSL_FORCE"
8686
fi
8787

8888
}
8989

9090
# CSV list function
9191
csv_list() {
9292
echo -n "CRT,KEY,CA,SUBJECT,ALIASES,NOT_BEFORE,NOT_AFTER,SIGNATURE,"
93-
echo "PUB_KEY,ISSUER,FORCESSL"
93+
echo "PUB_KEY,ISSUER,SSL_FORCE"
9494
echo -n "\"$crt\",\"$key\",\"$ca\",\"$subj\",\"${alt_dns//,/ }\","
95-
echo "\"$before\",\"$after\",\"$signature\",\"$pub_key\",\"$issuer\",\"$forcessl\""
95+
echo "\"$before\",\"$after\",\"$signature\",\"$pub_key\",\"$issuer\",\"$SSL_FORCE\""
9696
}
9797

9898

@@ -109,6 +109,9 @@ is_object_valid 'web' 'DOMAIN' "$domain"
109109
# Action #
110110
#----------------------------------------------------------#
111111

112+
# Load domain data
113+
eval $(grep "DOMAIN='$domain'" $USER_DATA/web.conf)
114+
112115
# Parsing domain SSL certificate
113116
if [ -e "$USER_DATA/ssl/$domain.crt" ]; then
114117
crt=$(cat $USER_DATA/ssl/$domain.crt |sed ':a;N;$!ba;s/\n/\\n/g')

install/upgrade/0.10.0-190430.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,26 @@ sed -i "s/STATS_SYSTEM='webalizer,awstats'/STATS_SYSTEM='awstats'/g" $HESTIA/con
255255
# Run sftp jail once
256256
$HESTIA/bin/v-add-sys-sftp-jail
257257

258+
# Remove and migrate obsolete object keys
259+
for user in `ls /usr/local/hestia/data/users/`; do
260+
USER_DATA=$HESTIA/data/users/$user
261+
262+
# Web keys
263+
for domain in $($BIN/v-list-web-domains $user plain |cut -f 1); do
264+
obskey=$(get_object_value 'web' 'DOMAIN' "$domain" '$FORCESSL')
265+
if [ ! -z "$obskey" ]; then
266+
echo "(*) Fixing HTTP-to-HTTPS redirection for $domain"
267+
update_object_value 'web' 'DOMAIN' "$domain" '$FORCESSL' ''
268+
269+
# copy value under new key name
270+
add_object_key "web" 'DOMAIN' "$domain" 'SSL_FORCE' 'SSL_HOME'
271+
update_object_value 'web' 'DOMAIN' "$domain" '$SSL_FORCE' "$obskey"
272+
fi
273+
unset FORCESSL
274+
done
275+
sed -i "s/\sFORCESSL=''//g" $USER_DATA/web.conf
276+
done
277+
258278
# Rebuild user
259279
for user in `ls /usr/local/hestia/data/users/`; do
260280
echo "(*) Rebuilding domains and account for user: $user..."

web/edit/web/index.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
$v_ssl_signature = $ssl_str[$v_domain]['SIGNATURE'];
6161
$v_ssl_pub_key = $ssl_str[$v_domain]['PUB_KEY'];
6262
$v_ssl_issuer = $ssl_str[$v_domain]['ISSUER'];
63-
$v_ssl_forcessl = $data[$v_domain]['FORCESSL'];
63+
$v_ssl_forcessl = $data[$v_domain]['SSL_FORCE'];
6464
}
6565
$v_letsencrypt = $data[$v_domain]['LETSENCRYPT'];
6666
if (empty($v_letsencrypt)) $v_letsencrypt = 'no';

0 commit comments

Comments
 (0)