@@ -29,14 +29,14 @@ encode_base64() {
2929# ----------------------------------------------------------#
3030
3131check_args ' 2' " $# " ' USER DOMAIN'
32- is_format_valid ' user' ' domain'
32+ validate_format ' user' ' domain'
3333is_system_enabled " $WEB_SYSTEM " ' WEB_SYSTEM'
3434is_object_valid ' user' ' USER' " $user "
3535is_object_unsuspended ' user' ' USER' " $user "
3636if [ ! -e " $USER_DATA /ssl/le.conf" ]; then
3737 check_result $E_NOTEXIST " LetsEncrypt key doesn't exist"
3838fi
39- check_domain=$( grep -w " $domain ' " $USER_DATA /web.conf)
39+ check_domain=$( grep -w " $domain " $USER_DATA /web.conf)
4040if [ -z " $check_domain " ]; then
4141 check_result $E_NOTEXIST " domain $domain doesn't exist"
4242fi
4848
4949source $USER_DATA /ssl/le.conf
5050api=' https://acme-v01.api.letsencrypt.org'
51- r_domain=$( echo " $check_domain " | cut -f 2 -d \' )
51+ r_domain=$( echo " $check_domain " | cut -f 2 -d \' | tail -n1 )
5252key=" $USER_DATA /ssl/user.key"
5353exponent=" $EXPONENT "
5454modulus=" $MODULUS "
@@ -77,16 +77,15 @@ answer=$(curl -s -i -d "$data" "$api/acme/new-authz")
7777# Checking http answer status
7878status=$( echo " $answer " | grep HTTP/1.1 | tail -n1 | cut -f2 -d ' ' )
7979if [[ " $status " -ne " 201" ]]; then
80+ echo -e " $( date) $domain $status \n$answer \n$( dig @8.8.8.8 $domain +short) " >> /tmp/le-log.txt
8081 check_result $E_CONNECT " LetsEncrypt challenge request $status "
8182fi
8283
8384# Parsing domain nonce,token and uri
8485nonce=$( echo " $answer " | grep Nonce | cut -f2 -d \ | tr -d ' \r\n' )
8586protected=$( echo -n ' {"nonce":"' " $nonce " ' "}' | encode_base64)
86- token=$( echo " $answer " | tr ' ,' ' \n' | grep -A 3 http-01 | grep token)
87- token=$( echo " $token " | cut -f 4 -d \" )
88- uri=$( echo " $answer " | tr ' ,' ' \n' | grep -A 3 http-01 | grep uri)
89- uri=$( echo " $uri " | cut -f 4 -d \" )
87+ token=$( echo " $answer " | grep -A 3 http-01 | grep token | cut -f 4 -d \" )
88+ uri=$( echo " $answer " | grep -A 3 http-01 | grep uri | cut -f 4 -d \" )
9089
9190# Adding location wrapper for request challenge
9291if [ " $WEB_SYSTEM " = ' nginx' ] || [ " $PROXY_SYSTEM " = ' nginx' ]; then
@@ -96,20 +95,26 @@ if [ "$WEB_SYSTEM" = 'nginx' ] || [ "$PROXY_SYSTEM" = 'nginx' ]; then
9695 echo ' default_type text/plain;' >> $conf
9796 echo ' return 200 "$1.' $thumb ' ";' >> $conf
9897 echo ' }' >> $conf
99- if [ ! -z " $PROXY_SYSTEM " ]; then
100- $BIN /v-restart-proxy
101- check_result $? " Proxy restart failed" > /dev/null
102- else
103- $BIN /v-restart-web
104- check_result $? " Web restart failed" > /dev/null
105- fi
10698 fi
99+ echo $conf
107100else
108101 acme=" $HOMEDIR /$user /web/$r_domain /public_html/.well-known/acme-challenge"
109102 echo " $token " > $acme /$token .$thumb
110103 chown -R $user :$user $HOMEDIR /$user /web/$r_domain /public_html/.well-known
111104fi
112105
106+ # Restarting web server
107+ if [ -z " $PROXY_SYSTEM " ]; then
108+ $BIN /v-restart-web
109+ check_result $? " Proxy restart failed" > /dev/null
110+ else
111+ $BIN /v-restart-proxy
112+ $BIN /v-restart-web
113+ check_result $? " Web restart failed" > /dev/null
114+ fi
115+
116+ sleep 30
117+
113118# Defining ACME query (request validation)
114119query=' {"resource":"challenge","type":"http-01","keyAuthorization"'
115120query=$query ' :"' $token .$thumb ' ","token":"' $token ' "}'
@@ -123,7 +128,7 @@ data=$data'"payload":"'"$payload"'","signature":"'"$signature"'"}'
123128answer=$( curl -s -i -d " $data " " $uri " )
124129
125130# Checking domain validation status
126- status=$( echo $answer | tr ' , ' ' \n ' | grep status | cut -f 4 -d \" )
131+ status=$( echo $answer | grep status | cut -f 4 -d \" )
127132location=$( echo " $answer " | grep Location: | awk ' {print $2}' | tr -d ' \r\n' )
128133while [ " $status " = ' pending' ] ; do
129134 answer=$( curl -s -i " $location " )
140145# ----------------------------------------------------------#
141146
142147# Logging
143- log_event " $OK " " $ARGUMENTS "
148+ log_event " $OK " " $EVENT "
144149
145150exit
0 commit comments