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
d988542a
Commit
d988542a
authored
Jul 23, 2017
by
Ondrej Simek
Browse files
Sync with upstream
parents
4285d81c
cae6c8e5
Changes
4
Hide whitespace changes
Inline
Side-by-side
Dockerfile
View file @
d988542a
...
@@ -16,7 +16,7 @@ ADD ./ /install_acme.sh/
...
@@ -16,7 +16,7 @@ ADD ./ /install_acme.sh/
RUN
cd
/install_acme.sh
&&
([
-f
/install_acme.sh/acme.sh
]
&&
/install_acme.sh/acme.sh
--install
||
curl https://get.acme.sh | sh
)
&&
rm
-rf
/install_acme.sh/
RUN
cd
/install_acme.sh
&&
([
-f
/install_acme.sh/acme.sh
]
&&
/install_acme.sh/acme.sh
--install
||
curl https://get.acme.sh | sh
)
&&
rm
-rf
/install_acme.sh/
RUN
ln
-s
/root/.acme.sh/acme.sh /usr/local/bin/acme.sh
RUN
ln
-s
/root/.acme.sh/acme.sh /usr/local/bin/acme.sh
&&
crontab
-l
|
sed
's#> /dev/null##'
| crontab -
RUN for
verb
in
help
\
RUN for
verb
in
help
\
version \
version \
...
...
README.md
View file @
d988542a
...
@@ -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 @
d988542a
...
@@ -572,7 +572,20 @@ acme.sh --issue --dns dns_dyn -d example.com -d www.example.com
...
@@ -572,7 +572,20 @@ 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 Hurricane Electric
## 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.
# 31. Use Hurricane Electric
Hurricane Electric doesn't have an API so just set your login credentials like so:
Hurricane Electric doesn't have an API so just set your login credentials like so:
...
...
dnsapi/dns_yandex.sh
0 → 100755
View file @
d988542a
#!/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