Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
Acme.Sh
Commits
30de13b4
Commit
30de13b4
authored
Jul 29, 2016
by
neil
Browse files
support Godaddy domaain api
parent
7a60c14b
Changes
4
Hide whitespace changes
Inline
Side-by-side
README.md
View file @
30de13b4
...
...
@@ -243,8 +243,9 @@ You don't have do anything manually!
1.
Cloudflare.com API
2.
Dnspod.cn API
3.
Cloudxns.com API
4.
AWS Route 53, see: https://github.com/Neilpang/acme.sh/issues/65
5.
lexicon dns api: https://github.com/Neilpang/acme.sh/wiki/How-to-use-lexicon-dns-api
4.
Godaddy.com API
5.
AWS Route 53, see: https://github.com/Neilpang/acme.sh/issues/65
6.
lexicon dns api: https://github.com/Neilpang/acme.sh/wiki/How-to-use-lexicon-dns-api
(DigitalOcean, DNSimple, DnsMadeEasy, DNSPark, EasyDNS, Namesilo, NS1, PointHQ, Rage4 and Vultr etc.)
##### More APIs are coming soon...
...
...
acme.sh
View file @
30de13b4
#!/usr/bin/env sh
VER
=
2.3.
2
VER
=
2.3.
3
PROJECT_NAME
=
"acme.sh"
...
...
@@ -640,6 +640,7 @@ _post() {
fi
_debug
$httpmethod
_debug
"url"
"
$url
"
_debug2
"body"
"
$body
"
if
_exists
"curl"
;
then
_CURL
=
"
$CURL
--dump-header
$HTTP_HEADER
"
_debug
"_CURL"
"
$_CURL
"
...
...
@@ -2217,6 +2218,12 @@ _initconf() {
#
#CX_Secret=
\"
sADDsdasdgdsf
\"
#######################
#Godaddy.com:
#GD_Key=
\"
sdfdsgdgdfdasfds
\"
#
#GD_Secret=
\"
sADDsdasdfsdfdssdgdsf
\"
"
>
$ACCOUNT_CONF_PATH
fi
}
...
...
dnsapi/README.md
View file @
30de13b4
...
...
@@ -64,6 +64,32 @@ acme.sh --issue --dns dns_cx -d aa.com -d www.aa.com
The
`CX_Key`
and
`CX_Secret`
will be saved in
`~/.acme.sh/account.conf`
, when next time you use Cloudxns.com api, it will reuse this key.
## Use Godaddy.com domain api to automatically issue cert
We support Godaddy integeration.
First you need to login to your Godaddy account to get your api key and api secret.
https://developer.godaddy.com/keys/
Please Create a Production key, instead of a Test key.
```
export GD_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export GD_Secret="asdfsdafdsfdsfdsfdsfdsafd"
```
Ok, let's issue cert now:
```
acme.sh --issue --dns dns_gd -d aa.com -d www.aa.com
```
The
`GD_Key`
and
`GD_Secret`
will be saved in
`~/.acme.sh/account.conf`
, when next time you use cloudflare api, it will reuse this key.
# Use custom api
...
...
dnsapi/dns_gd.sh
0 → 100644
View file @
30de13b4
#!/usr/bin/env sh
#Godaddy domain api
#
#GD_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
#
#GD_Secret="asdfsdfsfsdfsdfdfsdf"
GD_Api
=
"https://api.godaddy.com/v1"
######## Public functions #####################
#Usage: add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
dns_gd_add
(){
fulldomain
=
$1
txtvalue
=
$2
if
[
-z
"
$GD_Key
"
]
||
[
-z
"
$GD_Secret
"
]
;
then
_err
"You don't specify godaddy api key and secret yet."
_err
"Please create you key and try again."
return
1
fi
#save the api key and email to the account conf file.
_saveaccountconf GD_Key
"
$GD_Key
"
_saveaccountconf GD_Secret
"
$GD_Secret
"
_debug
"First detect the root zone"
if
!
_get_root
$fulldomain
;
then
_err
"invalid domain"
return
1
fi
_debug _domain_id
"
$_domain_id
"
_debug _sub_domain
"
$_sub_domain
"
_debug _domain
"
$_domain
"
_info
"Adding record"
if
_gd_rest PUT
"domains/
$_domain
/records/TXT/
$_sub_domain
"
"[{
\"
data
\"
:
\"
$txtvalue
\"
}]"
;
then
if
[
"
$response
"
==
"{}"
]
;
then
_info
"Added, sleeping 10 seconds"
sleep
10
#todo: check if the record takes effect
return
0
else
_err
"Add txt record error."
_err
"
$response
"
return
1
fi
fi
_err
"Add txt record error."
}
#################### Private functions bellow ##################################
#_acme-challenge.www.domain.com
#returns
# _sub_domain=_acme-challenge.www
# _domain=domain.com
# _domain_id=sdjkglgdfewsdfg
_get_root
()
{
domain
=
$1
i
=
2
p
=
1
while
[
'1'
]
;
do
h
=
$(
printf
$domain
|
cut
-d
.
-f
$i
-100
)
if
[
-z
"
$h
"
]
;
then
#not valid
return
1
;
fi
if
!
_gd_rest GET
"domains/
$h
"
;
then
return
1
fi
if
printf
"
$response
"
|
grep
'"code":"NOT_FOUND"'
>
/dev/null
;
then
_debug
"
$h
not found"
else
_sub_domain
=
$(
printf
$domain
|
cut
-d
.
-f
1-
$p
)
_domain
=
$h
return
0
fi
p
=
$i
i
=
$(
expr
$i
+ 1
)
done
return
1
}
_gd_rest
()
{
m
=
$1
ep
=
"
$2
"
data
=
"
$3
"
_debug
$ep
_H1
=
"Authorization: sso-key
$GD_Key
:
$GD_Secret
"
_H2
=
"Content-Type: application/json"
if
[
"
$data
"
]
;
then
_debug data
"
$data
"
response
=
"
$(
_post
"
$data
"
"
$GD_Api
/
$ep
"
""
$m
)
"
else
response
=
"
$(
_get
"
$GD_Api
/
$ep
"
)
"
fi
if
[
"
$?
"
!=
"0"
]
;
then
_err
"error
$ep
"
return
1
fi
_debug2 response
"
$response
"
return
0
}
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