Skip to content

Commit 29b0c89

Browse files
authored
Fix/ssl redirect issues (hestiacp#2411)
* Fix issue with missing keys in web config - After new web domain has been added "validate" config against newly added keys - Always update default keys after update - Fix issue where known_keys=(KEY1 KEY2) Only listed KEY1 was listed in /usr/local/hestia/conf/default/{system}.conf - Rebuild users for 1.5.8 * Call sanitize_config_file "web" before fetching web values * Update spacing
1 parent 0b23e63 commit 29b0c89

File tree

5 files changed

+25
-20
lines changed

5 files changed

+25
-20
lines changed

bin/v-add-web-domain

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ source $HESTIA/func/main.sh
3333
source $HESTIA/func/domain.sh
3434
# shellcheck source=/usr/local/hestia/func/ip.sh
3535
source $HESTIA/func/ip.sh
36+
# shellcheck source=/usr/local/hestia/func/syshealth.sh
37+
source $HESTIA/func/syshealth.sh
3638
# load config file
3739
source_conf "$HESTIA/conf/hestia.conf"
3840

@@ -212,6 +214,8 @@ echo "DOMAIN='$domain' IP='$ip' IP6='' CUSTOM_DOCROOT='' ALIAS='$ALIAS' TPL='$WE
212214
STATS='' STATS_USER='' STATS_CRYPT='' U_DISK='0' U_BANDWIDTH='0'\
213215
SUSPENDED='no' TIME='$time' DATE='$date'" >> $USER_DATA/web.conf
214216

217+
syshealth_repair_web_config
218+
215219
# Restarting web server
216220
$BIN/v-restart-web "$restart"
217221
check_result $? "Web restart failed" >/dev/null

bin/v-update-letsencrypt-ssl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
source /etc/hestiacp/hestia.conf
1616
# shellcheck source=/usr/local/hestia/func/main.sh
1717
source $HESTIA/func/main.sh
18+
# shellcheck source=/usr/local/hestia/func/syshealth.sh
19+
source $HESTIA/func/syshealth.sh
1820
# load config file
1921
source_conf "$HESTIA/conf/hestia.conf"
2022

@@ -39,7 +41,8 @@ for user in $($HESTIA/bin/v-list-sys-users plain); do
3941
USER_DATA=$HESTIA/data/users/$user
4042

4143
for domain in $(search_objects 'web' 'LETSENCRYPT' 'yes' 'DOMAIN'); do
42-
44+
# Clear any keys related to web domains
45+
sanitize_config_file "web"
4346
domain_suspended="$(get_object_value 'web' 'DOMAIN' "$domain" '$SUSPENDED')"
4447
if [ "$domain_suspended" = "yes" ]; then
4548
continue

func/syshealth.sh

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ function syshealth_update_web_config_format() {
4949
# WEB DOMAINS
5050
# Create array of known keys in configuration file
5151
system="web"
52-
known_keys=(DOMAIN IP IP6 CUSTOM_DOCROOT CUSTOM_PHPROOT FASTCGI_CACHE FASTCGI_DURATION ALIAS TPL SSL SSL_FORCE SSL_HOME LETSENCRYPT FTP_USER FTP_MD5 FTP_PATH BACKEND PROXY PROXY_EXT STATS STATS_USER STATS_CRYPT AUTH_USER AUTH_HASH SUSPENDED TIME DATE)
52+
known_keys="DOMAIN IP IP6 CUSTOM_DOCROOT CUSTOM_PHPROOT FASTCGI_CACHE FASTCGI_DURATION ALIAS TPL SSL SSL_FORCE SSL_HOME LETSENCRYPT FTP_USER FTP_MD5 FTP_PATH BACKEND PROXY PROXY_EXT STATS STATS_USER STATS_CRYPT REDIRECT REDIRECT_CODE AUTH_USER AUTH_HASH SUSPENDED TIME DATE"
5353
write_kv_config_file
5454
unset system
5555
unset known_keys
@@ -61,14 +61,14 @@ function syshealth_update_dns_config_format() {
6161
# DNS DOMAINS
6262
# Create array of known keys in configuration file
6363
system="dns"
64-
known_keys=(DOMAIN IP TPL TTL EXP SOA SERIAL SRC RECORDS SUSPENDED TIME DATE)
64+
known_keys="DOMAIN IP TPL TTL EXP SOA SERIAL SRC RECORDS SUSPENDED TIME DATE"
6565
write_kv_config_file
6666
unset system
6767
unset known_keys
6868

6969
# DNS RECORDS
7070
system="dns_records"
71-
known_keys=(ID RECORD TYPE PRIORITY VALUE SUSPENDED TIME DATE TTL)
71+
known_keys="ID RECORD TYPE PRIORITY VALUE SUSPENDED TIME DATE TTL"
7272
write_kv_config_file
7373
unset system
7474
unset known_keys
@@ -80,14 +80,14 @@ function syshealth_update_mail_config_format() {
8080
# MAIL DOMAINS
8181
# Create array of known keys in configuration file
8282
system="mail"
83-
known_keys=(DOMAIN ANTIVIRUS ANTISPAM DKIM WEBMAIL SSL LETSENCRYPT CATCHALL ACCOUNTS U_DISK SUSPENDED TIME DATE)
83+
known_keys="DOMAIN ANTIVIRUS ANTISPAM DKIM WEBMAIL SSL LETSENCRYPT CATCHALL ACCOUNTS U_DISK SUSPENDED TIME DATE"
8484
write_kv_config_file
8585
unset system
8686
unset known_keys
8787

8888
# MAIL ACCOUNTS
8989
system="mail_accounts"
90-
known_keys=(ACCOUNT ALIAS AUTOREPLY FWD FWD_ONLY MD5 QUOTA U_DISK SUSPENDED TIME DATE)
90+
known_keys="ACCOUNT ALIAS AUTOREPLY FWD FWD_ONLY MD5 QUOTA U_DISK SUSPENDED TIME DATE"
9191
write_kv_config_file
9292
unset system
9393
unset known_keys
@@ -99,15 +99,15 @@ function syshealth_update_user_config_format() {
9999
# USER CONFIGURATION
100100
# Create array of known keys in configuration file
101101
system="user"
102-
known_keys=(NAME PACKAGE CONTACT CRON_REPORTS MD5 RKEY TWOFA QRCODE PHPCLI ROLE SUSPENDED SUSPENDED_USERS SUSPENDED_WEB SUSPENDED_DNS SUSPENDED_MAIL SUSPENDED_DB SUSPENDED_CRON IP_AVAIL IP_OWNED U_USERS U_DISK U_DISK_DIRS U_DISK_WEB U_DISK_MAIL U_DISK_DB U_BANDWIDTH U_WEB_DOMAINS U_WEB_SSL U_WEB_ALIASES U_DNS_DOMAINS U_DNS_RECORDS U_MAIL_DKIM U_MAIL_DKIM U_MAIL_ACCOUNTS U_MAIL_DOMAINS U_MAIL_SSL U_DATABASES U_CRON_JOBS U_BACKUPS LANGUAGE THEME NOTIFICATIONS PREF_UI_SORT TIME DATE)
102+
known_keys="NAME PACKAGE CONTACT CRON_REPORTS MD5 RKEY TWOFA QRCODE PHPCLI ROLE SUSPENDED SUSPENDED_USERS SUSPENDED_WEB SUSPENDED_DNS SUSPENDED_MAIL SUSPENDED_DB SUSPENDED_CRON IP_AVAIL IP_OWNED U_USERS U_DISK U_DISK_DIRS U_DISK_WEB U_DISK_MAIL U_DISK_DB U_BANDWIDTH U_WEB_DOMAINS U_WEB_SSL U_WEB_ALIASES U_DNS_DOMAINS U_DNS_RECORDS U_MAIL_DKIM U_MAIL_DKIM U_MAIL_ACCOUNTS U_MAIL_DOMAINS U_MAIL_SSL U_DATABASES U_CRON_JOBS U_BACKUPS LANGUAGE THEME NOTIFICATIONS PREF_UI_SORT TIME DATE"
103103
write_kv_config_file
104104
unset system
105105
unset known_keys
106106

107107
# CRON JOB CONFIGURATION
108108
# Create array of known keys in configuration file
109109
system="cron"
110-
known_keys=(JOB MIN HOUR DAY MONTH WDAY CMD SUSPENDED TIME DATE)
110+
known_keys="JOB MIN HOUR DAY MONTH WDAY CMD SUSPENDED TIME DATE"
111111
write_kv_config_file
112112
unset system
113113
unset known_keys
@@ -119,7 +119,7 @@ function syshealth_update_db_config_format() {
119119
# DATABASE CONFIGURATION
120120
# Create array of known keys in configuration file
121121
system="db"
122-
known_keys=(DB DBUSER MD5 HOST TYPE CHARSET U_DISK SUSPENDED TIME DATE)
122+
known_keys="DB DBUSER MD5 HOST TYPE CHARSET U_DISK SUSPENDED TIME DATE"
123123
write_kv_config_file
124124
unset system
125125
unset known_keys
@@ -131,7 +131,7 @@ function syshealth_update_ip_config_format() {
131131
# IP ADDRESS
132132
# Create array of known keys in configuration file
133133
system="ip"
134-
known_keys=(OWNER STATUS NAME U_SYS_USERS U_WEB_DOMAINS INTERFACE NETMASK NAT TIME DATE)
134+
known_keys="OWNER STATUS NAME U_SYS_USERS U_WEB_DOMAINS INTERFACE NETMASK NAT TIME DATE"
135135
write_kv_config_file
136136
unset system
137137
unset known_keys
@@ -144,7 +144,7 @@ function syshealth_repair_web_config() {
144144
get_domain_values 'web'
145145
prev="DOMAIN"
146146
for key in $known_keys; do
147-
if [ -z "${!key}" ]; then
147+
if [ -z "${!key}" ]; then
148148
add_object_key 'web' 'DOMAIN' "$domain" "$key" "$prev"
149149
fi
150150
prev=$key
@@ -155,7 +155,7 @@ function syshealth_update_system_config_format() {
155155
# SYSTEM CONFIGURATION
156156
# Create array of known keys in configuration file
157157
system="system"
158-
known_keys=(ANTISPAM_SYSTEM ANTIVIRUS_SYSTEM API_ALLOWED_IP API BACKEND_PORT BACKUP_GZIP BACKUP_MODE BACKUP_SYSTEM CRON_SYSTEM DB_PMA_ALIAS DB_SYSTEM DISK_QUOTA DNS_SYSTEM ENFORCE_SUBDOMAIN_OWNERSHIP FILE_MANAGER FIREWALL_EXTENSION FIREWALL_SYSTEM FTP_SYSTEM IMAP_SYSTEM INACTIVE_SESSION_TIMEOUT LANGUAGE LOGIN_STYLE MAIL_SYSTEM PROXY_PORT PROXY_SSL_PORT PROXY_SYSTEM RELEASE_BRANCH STATS_SYSTEM THEME UPDATE_HOSTNAME_SSL UPGRADE_SEND_EMAIL UPGRADE_SEND_EMAIL_LOG WEB_BACKEND WEBMAIL_ALIAS WEBMAIL_SYSTEM WEB_PORT WEB_RGROUPS WEB_SSL WEB_SSL_PORT WEB_SYSTEM VERSION)
158+
known_keys="ANTISPAM_SYSTEM ANTIVIRUS_SYSTEM API_ALLOWED_IP API BACKEND_PORT BACKUP_GZIP BACKUP_MODE BACKUP_SYSTEM CRON_SYSTEM DB_PMA_ALIAS DB_SYSTEM DISK_QUOTA DNS_SYSTEM ENFORCE_SUBDOMAIN_OWNERSHIP FILE_MANAGER FIREWALL_EXTENSION FIREWALL_SYSTEM FTP_SYSTEM IMAP_SYSTEM INACTIVE_SESSION_TIMEOUT LANGUAGE LOGIN_STYLE MAIL_SYSTEM PROXY_PORT PROXY_SSL_PORT PROXY_SYSTEM RELEASE_BRANCH STATS_SYSTEM THEME UPDATE_HOSTNAME_SSL UPGRADE_SEND_EMAIL UPGRADE_SEND_EMAIL_LOG WEB_BACKEND WEBMAIL_ALIAS WEBMAIL_SYSTEM WEB_PORT WEB_RGROUPS WEB_SSL WEB_SSL_PORT WEB_SYSTEM VERSION"
159159
write_kv_config_file
160160
unset system
161161
unset known_keys

func/upgrade.sh

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -762,13 +762,11 @@ upgrade_rebuild_users() {
762762
}
763763

764764
upgrade_replace_default_config() {
765-
if [ "$UPGRADE_REPLACE_KNOWN_KEYS" ]; then
766-
syshealth_update_web_config_format
767-
syshealth_update_mail_config_format
768-
syshealth_update_dns_config_format
769-
syshealth_update_db_config_format
770-
syshealth_update_user_config_format
771-
fi
765+
syshealth_update_web_config_format
766+
syshealth_update_mail_config_format
767+
syshealth_update_dns_config_format
768+
syshealth_update_db_config_format
769+
syshealth_update_user_config_format
772770
}
773771

774772
upgrade_restart_services() {

install/upgrade/versions/1.5.8.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
upgrade_config_set_value 'UPGRADE_UPDATE_WEB_TEMPLATES' 'false'
1919
upgrade_config_set_value 'UPGRADE_UPDATE_DNS_TEMPLATES' 'false'
2020
upgrade_config_set_value 'UPGRADE_UPDATE_MAIL_TEMPLATES' 'false'
21-
upgrade_config_set_value 'UPGRADE_REBUILD_USERS' 'false'
21+
upgrade_config_set_value 'UPGRADE_REBUILD_USERS' 'true'
2222
upgrade_config_set_value 'UPGRADE_UPDATE_FILEMANAGER_CONFIG' 'false'
2323

2424
echo "[ * ] Create .gnupg directory"

0 commit comments

Comments
 (0)