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
cae6c8e5
Commit
cae6c8e5
authored
Jul 14, 2017
by
neil
Committed by
GitHub
Jul 14, 2017
Browse files
Merge pull request #943 from Neilpang/dev
Dev
parents
cea763bb
473340c5
Changes
3
Hide whitespace changes
Inline
Side-by-side
README.md
View file @
cae6c8e5
...
@@ -337,6 +337,7 @@ You don't have to do anything manually!
...
@@ -337,6 +337,7 @@ You don't have to do anything manually!
1.
DuckDNS.org API
1.
DuckDNS.org API
1.
Name.com API
1.
Name.com API
1.
Dyn Managed DNS API
1.
Dyn Managed DNS API
1.
Yandex PDD API (https://pdd.yandex.ru)
And:
And:
...
...
dnsapi/README.md
View file @
cae6c8e5
...
@@ -572,6 +572,18 @@ acme.sh --issue --dns dns_dyn -d example.com -d www.example.com
...
@@ -572,6 +572,18 @@ acme.sh --issue --dns dns_dyn -d example.com -d www.example.com
The
`DYN_Customer`
,
`DYN_Username`
and
`DYN_Password`
will be saved in
`~/.acme.sh/account.conf`
and will be reused when needed.
The
`DYN_Customer`
,
`DYN_Username`
and
`DYN_Password`
will be saved in
`~/.acme.sh/account.conf`
and will be reused when needed.
## 30. Use pdd.yandex.ru API
```
export PDD_Token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
```
Follow these instructions to get the token for your domain https://tech.yandex.com/domain/doc/concepts/access-docpage/
```
acme.sh --issue --dns dns_yandex -d mydomain.example.org
```
For issues, please report to https://github.com/non7top/acme.sh/issues.
# Use custom API
# Use custom API
...
...
dnsapi/dns_yandex.sh
0 → 100755
View file @
cae6c8e5
#!/usr/bin/env sh
# Author: non7top@gmail.com
# 07 Jul 2017
# report bugs at https://github.com/non7top/acme.sh
# Values to export:
# export PDD_Token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
######## Public functions #####################
#Usage: dns_myapi_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
dns_yandex_add
()
{
fulldomain
=
"
${
1
}
"
txtvalue
=
"
${
2
}
"
_debug
"Calling: dns_yandex_add() '
${
fulldomain
}
' '
${
txtvalue
}
'"
_PDD_credentials
||
return
1
export
_H1
=
"PddToken:
$PDD_Token
"
curDomain
=
$(
_PDD_get_domain
"
$fulldomain
"
)
_debug
"Found suitable domain in pdd:
$curDomain
"
curSubdomain
=
"
$(
echo
"
${
fulldomain
}
"
|
sed
-e
"s@.
${
curDomain
}
\$
@@"
)
"
curData
=
"domain=
${
curDomain
}
&type=TXT&subdomain=
${
curSubdomain
}
&ttl=360&content=
${
txtvalue
}
"
curUri
=
"https://pddimp.yandex.ru/api2/admin/dns/add"
curResult
=
"
$(
_post
"
${
curData
}
"
"
${
curUri
}
"
)
"
_debug
"Result:
$curResult
"
}
#Usage: dns_myapi_rm _acme-challenge.www.domain.com
dns_yandex_rm
()
{
fulldomain
=
"
${
1
}
"
_debug
"Calling: dns_yandex_rm() '
${
fulldomain
}
'"
_PDD_credentials
||
return
1
export
_H1
=
"PddToken:
$PDD_Token
"
record_id
=
$(
pdd_get_record_id
"
${
fulldomain
}
"
)
_debug
"Result:
$record_id
"
curDomain
=
$(
_PDD_get_domain
"
$fulldomain
"
)
_debug
"Found suitable domain in pdd:
$curDomain
"
curSubdomain
=
"
$(
echo
"
${
fulldomain
}
"
|
sed
-e
"s@.
${
curDomain
}
\$
@@"
)
"
curUri
=
"https://pddimp.yandex.ru/api2/admin/dns/del"
curData
=
"domain=
${
curDomain
}
&record_id=
${
record_id
}
"
curResult
=
"
$(
_post
"
${
curData
}
"
"
${
curUri
}
"
)
"
_debug
"Result:
$curResult
"
}
#################### Private functions below ##################################
_PDD_get_domain
()
{
fulldomain
=
"
${
1
}
"
__page
=
1
__last
=
0
while
[
$__last
-eq
0
]
;
do
uri1
=
"https://pddimp.yandex.ru/api2/admin/domain/domains?page=
${
__page
}
&on_page=20"
res1
=
$(
_get
"
$uri1
"
| _normalizeJson
)
#_debug "$res1"
__found
=
$(
echo
"
$res1
"
|
sed
-n
-e
's#.* "found": \([^,]*\),.*#\1#p'
)
_debug
"found:
$__found
results on page"
if
[
"
$__found
"
-lt
20
]
;
then
_debug
"last page:
$__page
"
__last
=
1
fi
__all_domains
=
"
$__all_domains
$(
echo
"
$res1
"
|
sed
-e
"s@,@
\n
@g"
|
grep
'"name"'
|
cut
-d
:
-f2
|
sed
-e
's@"@@g'
)
"
__page
=
$(
_math
$__page
+ 1
)
done
k
=
2
while
[
$k
-lt
10
]
;
do
__t
=
$(
echo
"
$fulldomain
"
|
cut
-d
.
-f
$k
-100
)
_debug
"finding zone for domain
$__t
"
for
d
in
$__all_domains
;
do
if
[
"
$d
"
=
"
$__t
"
]
;
then
echo
"
$__t
"
return
fi
done
k
=
$(
_math
$k
+ 1
)
done
_err
"No suitable domain found in your account"
return
1
}
_PDD_credentials
()
{
if
[
-z
"
${
PDD_Token
}
"
]
;
then
PDD_Token
=
""
_err
"You need to export PDD_Token=xxxxxxxxxxxxxxxxx"
_err
"You can get it at https://pddimp.yandex.ru/api2/admin/get_token"
return
1
else
_saveaccountconf PDD_Token
"
${
PDD_Token
}
"
fi
}
pdd_get_record_id
()
{
fulldomain
=
"
${
1
}
"
curDomain
=
$(
_PDD_get_domain
"
$fulldomain
"
)
_debug
"Found suitable domain in pdd:
$curDomain
"
curSubdomain
=
"
$(
echo
"
${
fulldomain
}
"
|
sed
-e
"s@.
${
curDomain
}
\$
@@"
)
"
curUri
=
"https://pddimp.yandex.ru/api2/admin/dns/list?domain=
${
curDomain
}
"
curResult
=
"
$(
_get
"
${
curUri
}
"
| _normalizeJson
)
"
_debug
"Result:
$curResult
"
echo
"
$curResult
"
| _egrep_o
"{[^{]*
\"
content
\"
:[^{]*
\"
subdomain
\"
:
\"
${
curSubdomain
}
\"
"
|
sed
-n
-e
's#.* "record_id": \(.*\),[^,]*#\1#p'
}
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