Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Acme.Sh
Commits
c25947d5
Commit
c25947d5
authored
Jul 22, 2019
by
neilpang
Browse files
support new Cloudflare Token format
fix
https://github.com/Neilpang/acme.sh/issues/2398
parent
80af3d6a
Changes
1
Hide whitespace changes
Inline
Side-by-side
dnsapi/dns_cf.sh
View file @
c25947d5
...
@@ -5,6 +5,9 @@
...
@@ -5,6 +5,9 @@
#
#
#CF_Email="xxxx@sss.com"
#CF_Email="xxxx@sss.com"
#CF_Token="xxxx"
#CF_Account_ID="xxxx"
CF_Api
=
"https://api.cloudflare.com/client/v4"
CF_Api
=
"https://api.cloudflare.com/client/v4"
######## Public functions #####################
######## Public functions #####################
...
@@ -14,26 +17,33 @@ dns_cf_add() {
...
@@ -14,26 +17,33 @@ dns_cf_add() {
fulldomain
=
$1
fulldomain
=
$1
txtvalue
=
$2
txtvalue
=
$2
CF_Token
=
"
${
CF_Token
:-
$(
_readaccountconf_mutable CF_Token
)
}
"
CF_Account_ID
=
"
${
CF_Account_ID
:-
$(
_readaccountconf_mutable CF_Account_ID
)
}
"
CF_Key
=
"
${
CF_Key
:-
$(
_readaccountconf_mutable CF_Key
)
}
"
CF_Key
=
"
${
CF_Key
:-
$(
_readaccountconf_mutable CF_Key
)
}
"
CF_Email
=
"
${
CF_Email
:-
$(
_readaccountconf_mutable CF_Email
)
}
"
CF_Email
=
"
${
CF_Email
:-
$(
_readaccountconf_mutable CF_Email
)
}
"
if
[
-z
"
$CF_Key
"
]
||
[
-z
"
$CF_Email
"
]
;
then
CF_Key
=
""
if
[
"
$CF_Token
"
]
;
then
CF_Email
=
""
_saveaccountconf_mutable CF_Token
"
$CF_Token
"
_err
"You didn't specify a Cloudflare api key and email yet."
_saveaccountconf_mutable CF_Account_ID
"
$CF_Account_ID
"
_err
"You can get yours from here https://dash.cloudflare.com/profile."
else
return
1
if
[
-z
"
$CF_Key
"
]
||
[
-z
"
$CF_Email
"
]
;
then
fi
CF_Key
=
""
CF_Email
=
""
_err
"You didn't specify a Cloudflare api key and email yet."
_err
"You can get yours from here https://dash.cloudflare.com/profile."
return
1
fi
if
!
_contains
"
$CF_Email
"
"@"
;
then
if
!
_contains
"
$CF_Email
"
"@"
;
then
_err
"It seems that the CF_Email=
$CF_Email
is not a valid email address."
_err
"It seems that the CF_Email=
$CF_Email
is not a valid email address."
_err
"Please check and retry."
_err
"Please check and retry."
return
1
return
1
fi
#save the api key and email to the account conf file.
_saveaccountconf_mutable CF_Key
"
$CF_Key
"
_saveaccountconf_mutable CF_Email
"
$CF_Email
"
fi
fi
#save the api key and email to the account conf file.
_saveaccountconf_mutable CF_Key
"
$CF_Key
"
_saveaccountconf_mutable CF_Email
"
$CF_Email
"
_debug
"First detect the root zone"
_debug
"First detect the root zone"
if
!
_get_root
"
$fulldomain
"
;
then
if
!
_get_root
"
$fulldomain
"
;
then
_err
"invalid domain"
_err
"invalid domain"
...
@@ -71,19 +81,6 @@ dns_cf_add() {
...
@@ -71,19 +81,6 @@ dns_cf_add() {
fi
fi
_err
"Add txt record error."
_err
"Add txt record error."
return
1
return
1
# else
# _info "Updating record"
# record_id=$(printf "%s\n" "$response" | _egrep_o "\"id\":\"[^\"]*\"" | cut -d : -f 2 | tr -d \" | head -n 1)
# _debug "record_id" "$record_id"
#
# _cf_rest PUT "zones/$_domain_id/dns_records/$record_id" "{\"id\":\"$record_id\",\"type\":\"TXT\",\"name\":\"$fulldomain\",\"content\":\"$txtvalue\",\"zone_id\":\"$_domain_id\",\"zone_name\":\"$_domain\"}"
# if [ "$?" = "0" ]; then
# _info "Updated, OK"
# return 0
# fi
# _err "Update error"
# return 1
# fi
}
}
...
@@ -92,15 +89,10 @@ dns_cf_rm() {
...
@@ -92,15 +89,10 @@ dns_cf_rm() {
fulldomain
=
$1
fulldomain
=
$1
txtvalue
=
$2
txtvalue
=
$2
CF_Token
=
"
${
CF_Token
:-
$(
_readaccountconf_mutable CF_Token
)
}
"
CF_Account_ID
=
"
${
CF_Account_ID
:-
$(
_readaccountconf_mutable CF_Account_ID
)
}
"
CF_Key
=
"
${
CF_Key
:-
$(
_readaccountconf_mutable CF_Key
)
}
"
CF_Key
=
"
${
CF_Key
:-
$(
_readaccountconf_mutable CF_Key
)
}
"
CF_Email
=
"
${
CF_Email
:-
$(
_readaccountconf_mutable CF_Email
)
}
"
CF_Email
=
"
${
CF_Email
:-
$(
_readaccountconf_mutable CF_Email
)
}
"
if
[
-z
"
$CF_Key
"
]
||
[
-z
"
$CF_Email
"
]
;
then
CF_Key
=
""
CF_Email
=
""
_err
"You didn't specify a Cloudflare api key and email yet."
_err
"You can get yours from here https://dash.cloudflare.com/profile."
return
1
fi
_debug
"First detect the root zone"
_debug
"First detect the root zone"
if
!
_get_root
"
$fulldomain
"
;
then
if
!
_get_root
"
$fulldomain
"
;
then
...
@@ -157,8 +149,14 @@ _get_root() {
...
@@ -157,8 +149,14 @@ _get_root() {
return
1
return
1
fi
fi
if
!
_cf_rest GET
"zones?name=
$h
"
;
then
if
[
"
$CF_Account_ID
"
]
;
then
return
1
if
!
_cf_rest GET
"zones?name=
$h
&account.id=
$CF_Account_ID
"
;
then
return
1
fi
else
if
!
_cf_rest GET
"zones?name=
$h
"
;
then
return
1
fi
fi
fi
if
_contains
"
$response
"
"
\"
name
\"
:
\"
$h
\"
"
||
_contains
"
$response
"
'"total_count":1'
;
then
if
_contains
"
$response
"
"
\"
name
\"
:
\"
$h
\"
"
||
_contains
"
$response
"
'"total_count":1'
;
then
...
@@ -184,10 +182,15 @@ _cf_rest() {
...
@@ -184,10 +182,15 @@ _cf_rest() {
email_trimmed
=
$(
echo
$CF_Email
|
tr
-d
'"'
)
email_trimmed
=
$(
echo
$CF_Email
|
tr
-d
'"'
)
key_trimmed
=
$(
echo
$CF_Key
|
tr
-d
'"'
)
key_trimmed
=
$(
echo
$CF_Key
|
tr
-d
'"'
)
token_trimmed
=
$(
echo
$CF_Token
|
tr
-d
'"'
)
export
_H1
=
"X-Auth-Email:
$email_trimmed
"
export
_H1
=
"Content-Type: application/json"
export
_H2
=
"X-Auth-Key:
$key_trimmed
"
if
[
"
$token_trimmed
"
]
;
then
export
_H3
=
"Content-Type: application/json"
export
_H2
=
"Authorization: Bearer
$token_trimmed
"
else
export
_H2
=
"X-Auth-Email:
$email_trimmed
"
export
_H3
=
"X-Auth-Key:
$key_trimmed
"
fi
if
[
"
$m
"
!=
"GET"
]
;
then
if
[
"
$m
"
!=
"GET"
]
;
then
_debug data
"
$data
"
_debug data
"
$data
"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment