diff --git a/dnsapi/README.md b/dnsapi/README.md
index 34b38678..ce8bbfb9 100644
--- a/dnsapi/README.md
+++ b/dnsapi/README.md
@@ -420,6 +420,7 @@ Ok, let's issue a cert now:
```
acme.sh --issue --dns dns_cloudns -d example.com -d www.example.com
```
+The `CLOUDNS_AUTH_ID` and `CLOUDNS_AUTH_PASSWORD` will be saved in `~/.acme.sh/account.conf` and will be reused when needed.
## 22. Use Infoblox API
diff --git a/dnsapi/dns_aws.sh b/dnsapi/dns_aws.sh
index 40782573..5a716514 100755
--- a/dnsapi/dns_aws.sh
+++ b/dnsapi/dns_aws.sh
@@ -87,6 +87,7 @@ _get_root() {
_debug "response" "$response"
while true; do
h=$(printf "%s" "$domain" | cut -d . -f $i-100)
+ _debug2 "Checking domain: $h"
if [ -z "$h" ]; then
if _contains "$response" "true" && _contains "$response" ""; then
_debug "IsTruncated"
@@ -102,23 +103,23 @@ _get_root() {
fi
fi
#not valid
+ _err "Invalid domain"
return 1
fi
if _contains "$response" "$h."; then
hostedzone="$(echo "$response" | sed 's//#&/g' | tr '#' '\n' | _egrep_o "[^<]*<.Id>$h.<.Name>.*false<.PrivateZone>.*<.HostedZone>")"
_debug hostedzone "$hostedzone"
- if [ -z "$hostedzone" ]; then
- _err "Error, can not get hostedzone."
+ if [ "$hostedzone" ]; then
+ _domain_id=$(printf "%s\n" "$hostedzone" | _egrep_o ".*<.Id>" | head -n 1 | _egrep_o ">.*<" | tr -d "<>")
+ if [ "$_domain_id" ]; then
+ _sub_domain=$(printf "%s" "$domain" | cut -d . -f 1-$p)
+ _domain=$h
+ return 0
+ fi
+ _err "Can not find domain id: $h"
return 1
fi
- _domain_id=$(printf "%s\n" "$hostedzone" | _egrep_o ".*<.Id>" | head -n 1 | _egrep_o ">.*<" | tr -d "<>")
- if [ "$_domain_id" ]; then
- _sub_domain=$(printf "%s" "$domain" | cut -d . -f 1-$p)
- _domain=$h
- return 0
- fi
- return 1
fi
p=$i
i=$(_math "$i" + 1)