mirror of
https://github.com/plantroon/acme.sh.git
synced 2024-12-26 23:11:44 +00:00
commit
de2970d7ef
@ -314,7 +314,7 @@ You don't have to do anything manually!
|
|||||||
1. InternetX autoDNS API (https://internetx.com)
|
1. InternetX autoDNS API (https://internetx.com)
|
||||||
1. Azure DNS
|
1. Azure DNS
|
||||||
1. selectel.com(selectel.ru) DNS API
|
1. selectel.com(selectel.ru) DNS API
|
||||||
|
1. zonomi.com DNS API
|
||||||
And:
|
And:
|
||||||
|
|
||||||
1. lexicon DNS API: https://github.com/Neilpang/acme.sh/wiki/How-to-use-lexicon-dns-api
|
1. lexicon DNS API: https://github.com/Neilpang/acme.sh/wiki/How-to-use-lexicon-dns-api
|
||||||
|
9
acme.sh
9
acme.sh
@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
VER=2.7.6
|
VER=2.7.7
|
||||||
|
|
||||||
PROJECT_NAME="acme.sh"
|
PROJECT_NAME="acme.sh"
|
||||||
|
|
||||||
@ -1561,6 +1561,9 @@ _inithttp() {
|
|||||||
_ACME_CURL="$_ACME_CURL --cacert $CA_BUNDLE "
|
_ACME_CURL="$_ACME_CURL --cacert $CA_BUNDLE "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if _contains "$(curl --help 2>&1)" "--globoff"; then
|
||||||
|
_ACME_CURL="$_ACME_CURL -g "
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$_ACME_WGET" ] && _exists "wget"; then
|
if [ -z "$_ACME_WGET" ] && _exists "wget"; then
|
||||||
@ -2760,9 +2763,9 @@ _isRealNginxConf() {
|
|||||||
|
|
||||||
_left="$(sed -n "${_start_nn},99999p" "$2")"
|
_left="$(sed -n "${_start_nn},99999p" "$2")"
|
||||||
_debug2 _left "$_left"
|
_debug2 _left "$_left"
|
||||||
if echo "$_left" | tr "\t" ' ' | grep -n "^ *server *" >/dev/null; then
|
_end="$(echo "$_left" | tr "\t" ' ' | grep -n "^ *server *" | grep -v server_name | _head_n 1)"
|
||||||
_end=$(echo "$_left" | tr "\t" ' ' | grep -n "^ *server *" | _head_n 1)
|
|
||||||
_debug "_end" "$_end"
|
_debug "_end" "$_end"
|
||||||
|
if [ "$_end" ]; then
|
||||||
_end_n=$(echo "$_end" | cut -d : -f 1)
|
_end_n=$(echo "$_end" | cut -d : -f 1)
|
||||||
_debug "_end_n" "$_end_n"
|
_debug "_end_n" "$_end_n"
|
||||||
_seg_n=$(echo "$_left" | sed -n "1,${_end_n}p")
|
_seg_n=$(echo "$_left" | sed -n "1,${_end_n}p")
|
||||||
|
@ -719,6 +719,28 @@ acme.sh --issue --dns dns_selectel -d example.com -d www.example.com
|
|||||||
|
|
||||||
The `SL_Key` will be saved in `~/.acme.sh/account.conf` and will be reused when needed.
|
The `SL_Key` will be saved in `~/.acme.sh/account.conf` and will be reused when needed.
|
||||||
|
|
||||||
|
## 39. Use zonomi.com domain API to automatically issue cert
|
||||||
|
|
||||||
|
First you need to login to your account to find your API key from: http://zonomi.com/app/dns/dyndns.jsp
|
||||||
|
|
||||||
|
Your will find your api key in the example urls:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
https://zonomi.com/app/dns/dyndns.jsp?host=example.com&api_key=1063364558943540954358668888888888
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
export ZM_Key="1063364558943540954358668888888888"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Ok, let's issue a cert now:
|
||||||
|
```
|
||||||
|
acme.sh --issue --dns dns_zonomi -d example.com -d www.example.com
|
||||||
|
```
|
||||||
|
|
||||||
|
The `ZM_Key` will be saved in `~/.acme.sh/account.conf` and will be reused when needed.
|
||||||
|
|
||||||
|
|
||||||
# Use custom API
|
# Use custom API
|
||||||
|
|
||||||
|
85
dnsapi/dns_zonomi.sh
Normal file
85
dnsapi/dns_zonomi.sh
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
#
|
||||||
|
#ZM_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
|
||||||
|
#
|
||||||
|
#https://zonomi.com dns api
|
||||||
|
|
||||||
|
ZM_Api="https://zonomi.com/app/dns/dyndns.jsp"
|
||||||
|
|
||||||
|
######## Public functions #####################
|
||||||
|
|
||||||
|
#Usage: add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
|
||||||
|
dns_zonomi_add() {
|
||||||
|
fulldomain=$1
|
||||||
|
txtvalue=$2
|
||||||
|
|
||||||
|
ZM_Key="${ZM_Key:-$(_readaccountconf_mutable ZM_Key)}"
|
||||||
|
|
||||||
|
if [ -z "$ZM_Key" ]; then
|
||||||
|
ZM_Key=""
|
||||||
|
_err "You don't specify zonomi api key yet."
|
||||||
|
_err "Please create your key and try again."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#save the api key to the account conf file.
|
||||||
|
_saveaccountconf_mutable ZM_Key "$ZM_Key"
|
||||||
|
|
||||||
|
_info "Get existing txt records for $fulldomain"
|
||||||
|
if ! _zm_request "action=QUERY&name=$fulldomain"; then
|
||||||
|
_err "error"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if _contains "$response" "<record"; then
|
||||||
|
_debug "get and update records"
|
||||||
|
_qstr="action[1]=SET&type[1]=TXT&name[1]=$fulldomain&value[1]=$txtvalue"
|
||||||
|
_qindex=2
|
||||||
|
for t in $(echo "$response" | tr -d "\r\n" | _egrep_o '<action.*</action>' | tr "<" "\n" | grep record | grep 'type="TXT"' | cut -d '"' -f 6); do
|
||||||
|
_debug2 t "$t"
|
||||||
|
_qstr="$_qstr&action[$_qindex]=SET&type[$_qindex]=TXT&name[$_qindex]=$fulldomain&value[$_qindex]=$t"
|
||||||
|
_qindex="$(_math "$_qindex" + 1)"
|
||||||
|
done
|
||||||
|
_zm_request "$_qstr"
|
||||||
|
else
|
||||||
|
_debug "Just add record"
|
||||||
|
_zm_request "action=SET&type=TXT&name=$fulldomain&value=$txtvalue"
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#fulldomain txtvalue
|
||||||
|
dns_zonomi_rm() {
|
||||||
|
fulldomain=$1
|
||||||
|
txtvalue=$2
|
||||||
|
|
||||||
|
ZM_Key="${ZM_Key:-$(_readaccountconf_mutable ZM_Key)}"
|
||||||
|
if [ -z "$ZM_Key" ]; then
|
||||||
|
ZM_Key=""
|
||||||
|
_err "You don't specify zonomi api key yet."
|
||||||
|
_err "Please create your key and try again."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
_zm_request "action=DELETE&type=TXT&name=$fulldomain"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#################### Private functions below ##################################
|
||||||
|
#qstr
|
||||||
|
_zm_request() {
|
||||||
|
qstr="$1"
|
||||||
|
|
||||||
|
_debug2 "qstr" "$qstr"
|
||||||
|
|
||||||
|
_zm_url="$ZM_Api?api_key=$ZM_Key&$qstr"
|
||||||
|
_debug2 "_zm_url" "$_zm_url"
|
||||||
|
response="$(_get "$_zm_url")"
|
||||||
|
|
||||||
|
if [ "$?" != "0" ]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
_debug2 response "$response"
|
||||||
|
_contains "$response" "<is_ok>OK:"
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user