_info "Getting new-authz for domain" $d
- if ! _send_signed_request "$API/acme/new-authz" "{\"resource\": \"new-authz\", \"identifier\": {\"type\": \"dns\", \"value\": \"$(_idn "$d")\"}}" ; then
- _err "Can not get domain token."
- _clearup
- _on_issue_err
- return 1
+ _Max_new_authz_retry_times=5
+ _authz_i=0
+ while [ "$_authz_i" -lt "$_Max_new_authz_retry_times" ] ; do
+ _info "Try new-authz for the $_authz_i time."
+ if ! _send_signed_request "$API/acme/new-authz" "{\"resource\": \"new-authz\", \"identifier\": {\"type\": \"dns\", \"value\": \"$(_idn "$d")\"}}" ; then
+ _err "Can not get domain token."
+ _clearup
+ _on_issue_err
+ return 1
+ fi
+ if ! _contains "$response" "An error occurred while processing your request" ; then
+ _info "The new-authz request is ok."
+ break
+ fi
+ _authz_i="$(_math "$_authz_i" + 1)"
+ _info "Sleep $_authz_i to retry."
+ _sleep "$_authz_i"
+ done;
+
+ if [ "$_authz_i" = "$_Max_new_authz_retry_times" ] ; then
+ _debug "new-authz retry reach the max $_Max_new_authz_retry_times times."
fi
if [ ! -z "$code" ] && [ ! "$code" = '201' ] ; then