mirror of
				https://github.com/hiskang/acme.sh
				synced 2025-11-03 20:07:43 +00:00 
			
		
		
		
	support Zonomi.com dns api: https://github.com/Neilpang/acme.sh/issues/1255
This commit is contained in:
		
							parent
							
								
									da0bd5a9dc
								
							
						
					
					
						commit
						6ca5f3d8f6
					
				@ -314,7 +314,7 @@ You don't have to do anything manually!
 | 
			
		||||
1. InternetX autoDNS API (https://internetx.com)
 | 
			
		||||
1. Azure DNS
 | 
			
		||||
1. selectel.com(selectel.ru) DNS API
 | 
			
		||||
 | 
			
		||||
1. zonomi.com DNS API
 | 
			
		||||
And: 
 | 
			
		||||
 | 
			
		||||
1. lexicon DNS API: https://github.com/Neilpang/acme.sh/wiki/How-to-use-lexicon-dns-api
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								acme.sh
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								acme.sh
									
									
									
									
									
								
							@ -1561,6 +1561,9 @@ _inithttp() {
 | 
			
		||||
      _ACME_CURL="$_ACME_CURL --cacert $CA_BUNDLE "
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if _contains "$(curl --help 2>&1)" "--globoff"; then
 | 
			
		||||
      _ACME_CURL="$_ACME_CURL -g "
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if [ -z "$_ACME_WGET" ] && _exists "wget"; then
 | 
			
		||||
 | 
			
		||||
@ -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.
 | 
			
		||||
 | 
			
		||||
## 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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										87
									
								
								dnsapi/dns_zonomi.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								dnsapi/dns_zonomi.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,87 @@
 | 
			
		||||
#!/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 "action" "$action"
 | 
			
		||||
  _debug2 "qstr" "$qstr"
 | 
			
		||||
 | 
			
		||||
  _zm_url="$ZM_Api?api_key=$ZM_Key&$qstr"
 | 
			
		||||
  _debug2 "_zm_url" "$_zm_url"
 | 
			
		||||
  response="$(_get "$_zm_url")"
 | 
			
		||||
 | 
			
		||||
  if [ "$?" != "0" ]; then
 | 
			
		||||
    _err "error $ep"
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
  _debug2 response "$response"
 | 
			
		||||
  _contains "$response" "<is_ok>OK:"
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user