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
795764f2
Unverified
Commit
795764f2
authored
Mar 28, 2018
by
neil
Committed by
GitHub
Mar 28, 2018
Browse files
Merge pull request #1420 from kinghost/master
Add dns_kinghost.sh
parents
09576f2f
986f61ac
Changes
3
Hide whitespace changes
Inline
Side-by-side
README.md
View file @
795764f2
...
@@ -315,6 +315,7 @@ You don't have to do anything manually!
...
@@ -315,6 +315,7 @@ You don't have to do anything manually!
1.
zonomi.com DNS API
1.
zonomi.com DNS API
1.
DreamHost.com API
1.
DreamHost.com API
1.
DirectAdmin API
1.
DirectAdmin API
1.
KingHost (https://www.kinghost.com.br/)
And:
And:
...
...
dnsapi/README.md
View file @
795764f2
...
@@ -787,6 +787,17 @@ acme.sh --issue --dns dns_da -d example.com -d www.example.com
...
@@ -787,6 +787,17 @@ acme.sh --issue --dns dns_da -d example.com -d www.example.com
The
`DA_Api`
and
`DA_Api_Insecure`
will be saved in
`~/.acme.sh/account.conf`
and will be reused when needed.
The
`DA_Api`
and
`DA_Api_Insecure`
will be saved in
`~/.acme.sh/account.conf`
and will be reused when needed.
## 42. Use KingHost DNS API
API access must be enabled at https://painel.kinghost.com.br/painel.api.php
```
export KINGHOST_Username="yourusername"
export KINGHOST_Password="yourpassword"
acme.sh --issue --dns dns_kinghost -d example.com -d *.example.com
```
The
`KINGHOST_username`
and
`KINGHOST_Password`
will be saved in
`~/.acme.sh/account.conf`
and will be reused when needed.
# Use custom API
# Use custom API
...
...
dnsapi/dns_kinghost.sh
0 → 100644
View file @
795764f2
#!/usr/bin/env sh
############################################################
# KingHost API support #
# http://api.kinghost.net/doc/ #
# #
# Author: Felipe Keller Braz <felipebraz@kinghost.com.br> #
# Report Bugs here: https://github.com/kinghost/acme.sh #
# #
# Values to export: #
# export KINGHOST_Username="email@provider.com" #
# export KINGHOST_Password="xxxxxxxxxx" #
############################################################
KING_Api
=
"https://api.kinghost.net/acme"
# Usage: add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
# Used to add txt record
dns_kinghost_add
()
{
fulldomain
=
$1
txtvalue
=
$2
KINGHOST_Username
=
"
${
KINGHOST_Username
:-
$(
_readaccountconf_mutable KINGHOST_Username
)
}
"
KINGHOST_Password
=
"
${
KINGHOST_Password
:-
$(
_readaccountconf_mutable KINGHOST_Password
)
}
"
if
[
-z
"
$KINGHOST_Username
"
]
||
[
-z
"
$KINGHOST_Password
"
]
;
then
KINGHOST_Username
=
""
KINGHOST_Password
=
""
_err
"You don't specify KingHost api password and email yet."
_err
"Please create you key and try again."
return
1
fi
#save the credentials to the account conf file.
_saveaccountconf_mutable KINGHOST_Username
"
$KINGHOST_Username
"
_saveaccountconf_mutable KINGHOST_Password
"
$KINGHOST_Password
"
_debug
"Getting txt records"
_kinghost_rest GET
"dns"
"name=
$fulldomain
&content=
$txtvalue
"
#This API call returns "status":"ok" if dns record does not exists
#We are creating a new txt record here, so we expect the "ok" status
if
!
echo
"
$response
"
|
grep
'"status":"ok"'
>
/dev/null
;
then
_err
"Error"
_err
"
$response
"
return
1
fi
_kinghost_rest POST
"dns"
"name=
$fulldomain
&content=
$txtvalue
"
if
!
echo
"
$response
"
|
grep
'"status":"ok"'
>
/dev/null
;
then
_err
"Error"
_err
"
$response
"
return
1
fi
return
0
}
# Usage: fulldomain txtvalue
# Used to remove the txt record after validation
dns_kinghost_rm
()
{
fulldomain
=
$1
txtvalue
=
$2
KINGHOST_Password
=
"
${
KINGHOST_Password
:-
$(
_readaccountconf_mutable KINGHOST_Password
)
}
"
KINGHOST_Username
=
"
${
KINGHOST_Username
:-
$(
_readaccountconf_mutable KINGHOST_Username
)
}
"
if
[
-z
"
$KINGHOST_Password
"
]
||
[
-z
"
$KINGHOST_Username
"
]
;
then
KINGHOST_Password
=
""
KINGHOST_Username
=
""
_err
"You don't specify KingHost api key and email yet."
_err
"Please create you key and try again."
return
1
fi
_kinghost_rest DELETE
"dns"
"name=
$fulldomain
&content=
$txtvalue
"
if
!
echo
"
$response
"
|
grep
'"status":"ok"'
>
/dev/null
;
then
_err
"Error"
_err
"
$response
"
return
1
fi
return
0
}
#################### Private functions below ##################################
_kinghost_rest
()
{
method
=
$1
uri
=
"
$2
"
data
=
"
$3
"
_debug
"
$uri
"
export
_H1
=
"X-Auth-Email:
$KINGHOST_Username
"
export
_H2
=
"X-Auth-Key:
$KINGHOST_Password
"
if
[
"
$method
"
!=
"GET"
]
;
then
_debug data
"
$data
"
response
=
"
$(
_post
"
$data
"
"
$KING_Api
/
$uri
.json"
""
"
$method
"
)
"
else
response
=
"
$(
_get
"
$KING_Api
/
$uri
.json?
$data
"
)
"
fi
if
[
"
$?
"
!=
"0"
]
;
then
_err
"error
$uri
"
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