|
|
@@ -23,7 +23,7 @@ source $HESTIA/conf/hestia.conf
|
|
|
# LE API
|
|
|
LE_API='https://acme-v02.api.letsencrypt.org'
|
|
|
|
|
|
-if [[ "$LE_STAGING" =~ ^(YES|TRUE)$ ]]; then
|
|
|
+if [[ "$LE_STAGING" = 'yes' ]]; then
|
|
|
LE_API='https://acme-staging-v02.api.letsencrypt.org'
|
|
|
fi
|
|
|
|
|
|
@@ -228,30 +228,33 @@ for auth in $authz; do
|
|
|
check_result $? "DNS _acme-challenge record wasn't created"
|
|
|
else
|
|
|
if [ -z "$mail" ]; then
|
|
|
- if [ "$WEB_SYSTEM" = 'nginx' ] && [ ! -z "$PROXY_SYSTEM" ]; then
|
|
|
- if [ ! -z "$mail" ]; then
|
|
|
- conf="$HOMEDIR/$user/conf/mail/$root_domain/$PROXY_SYSTEM.conf_letsencrypt"
|
|
|
- sconf="$HOMEDIR/$user/conf/mail/$root_domain/$PROXY_SYSTEM.ssl.conf_letsencrypt"
|
|
|
- else
|
|
|
- conf="$HOMEDIR/$user/conf/web/$domain/$PROXY_SYSTEM.conf_letsencrypt"
|
|
|
- sconf="$HOMEDIR/$user/conf/web/$domain/$PROXY_SYSTEM.ssl.conf_letsencrypt"
|
|
|
- fi
|
|
|
-
|
|
|
- if [ ! -e "$conf" ]; then
|
|
|
- echo 'location ~ "^/\.well-known/acme-challenge/(.*)$" {' \
|
|
|
- > $conf
|
|
|
- echo ' default_type text/plain;' >> $conf
|
|
|
- echo ' return 200 "$1.'$THUMB'";' >> $conf
|
|
|
- echo '}' >> $conf
|
|
|
- fi
|
|
|
+ if [ "$WEB_SYSTEM" = 'nginx' ] || [ "$PROXY_SYSTEM" = 'nginx' ]; then
|
|
|
+ conf="$HOMEDIR/$user/conf/web/$domain/nginx.conf_letsencrypt"
|
|
|
+ sconf="$HOMEDIR/$user/conf/web/$domain/nginx.ssl.conf_letsencrypt"
|
|
|
+ echo 'location ~ "^/\.well-known/acme-challenge/(.*)$" {' \
|
|
|
+ > $conf
|
|
|
+ echo ' default_type text/plain;' >> $conf
|
|
|
+ echo ' return 200 "$1.'$THUMB'";' >> $conf
|
|
|
+ echo '}' >> $conf
|
|
|
if [ ! -e "$sconf" ]; then
|
|
|
ln -s "$conf" "$sconf"
|
|
|
fi
|
|
|
- $BIN/v-restart-proxy
|
|
|
- check_result $? "Proxy restart failed" > /dev/null
|
|
|
-
|
|
|
+ if [ ! -z "$PROXY_SYSTEM" ]; then
|
|
|
+ $BIN/v-restart-proxy
|
|
|
+ check_result $? "Proxy restart failed" > /dev/null
|
|
|
+ fi
|
|
|
else
|
|
|
- well_known="$HOMEDIR/$user/web/$domain/public_html/.well-known"
|
|
|
+ # Get root directory from configuration
|
|
|
+ domain_config="$HOMEDIR/$user/conf/web/$domain"
|
|
|
+ if [ -f "$domain_config/apache2.conf" ]; then
|
|
|
+ well_known="$(cat $domain_config/apache2.conf | egrep \
|
|
|
+ '^\s+DocumentRoot'| awk '{split($0, a, " "); \
|
|
|
+ print a[2]}')/.well-known"
|
|
|
+ else
|
|
|
+ well_known="$(cat $domain_config/nginx.conf | egrep '^\s+root'| \
|
|
|
+ awk '{split($0, a, " "); print a[2]}' | \
|
|
|
+ sed 's/;$//')/.well-known"
|
|
|
+ fi
|
|
|
acme_challenge="$well_known/acme-challenge"
|
|
|
mkdir -p $acme_challenge
|
|
|
echo "$token.$THUMB" > $acme_challenge/$token
|
|
|
@@ -264,8 +267,10 @@ for auth in $authz; do
|
|
|
echo "$token.$THUMB" > $acme_challenge/$token
|
|
|
chown -R $user:$user $well_known
|
|
|
fi
|
|
|
- $BIN/v-restart-web
|
|
|
- check_result $? "Web restart failed" > /dev/null
|
|
|
+ if [ "$WEB_SYSTEM" = 'nginx' ]; then
|
|
|
+ $BIN/v-restart-web
|
|
|
+ check_result $? "Web restart failed" > /dev/null
|
|
|
+ fi
|
|
|
fi
|
|
|
|
|
|
# Requesting ACME validation / STEP 5
|
|
|
@@ -411,6 +416,11 @@ else
|
|
|
update_object_value 'mail' 'DOMAIN' "$root_domain" '$LETSENCRYPT' 'yes'
|
|
|
fi
|
|
|
|
|
|
+# Remove challenge folder if exist
|
|
|
+if [ ! -z "$well_known" ]; then
|
|
|
+ rm -fr $well_known
|
|
|
+fi
|
|
|
+
|
|
|
#----------------------------------------------------------#
|
|
|
# Hestia #
|
|
|
#----------------------------------------------------------#
|