mirror of
				https://github.com/hiskang/acme.sh
				synced 2025-10-31 10:27:22 +00:00 
			
		
		
		
	Merge branch 'dev' of https://github.com/Neilpang/acme.sh into dev
This commit is contained in:
		
						commit
						54a52f7048
					
				| @ -315,12 +315,7 @@ You don't have to do anything manually! | |||||||
| 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 | 1. zonomi.com DNS API | ||||||
| 
 | 1. DreamHost.com API | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| And:  | And:  | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -744,6 +744,18 @@ 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. | The `ZM_Key` will be saved in `~/.acme.sh/account.conf` and will be reused when needed. | ||||||
| 
 | 
 | ||||||
|  | ## 40. Use DreamHost DNS API | ||||||
|  | 
 | ||||||
|  | DNS API keys may be created at https://panel.dreamhost.com/?tree=home.api. | ||||||
|  | Ensure the created key has add and remove privelages. | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | export DH_API_Key="<api key>" | ||||||
|  | acme.sh --issue --dns dns_dreamhost -d example.com -d www.example.com | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | The 'DH_API_KEY' will be saved in `~/.acme.sh/account.conf` and will | ||||||
|  | be reused when needed. | ||||||
| 
 | 
 | ||||||
| # Use custom API | # Use custom API | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										97
									
								
								dnsapi/dns_dreamhost.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								dnsapi/dns_dreamhost.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,97 @@ | |||||||
|  | #!/usr/bin/env sh | ||||||
|  | 
 | ||||||
|  | #Author: RhinoLance | ||||||
|  | #Report Bugs here: https://github.com/RhinoLance/acme.sh | ||||||
|  | # | ||||||
|  | 
 | ||||||
|  | #define the api endpoint | ||||||
|  | DH_API_ENDPOINT="https://api.dreamhost.com/" | ||||||
|  | querystring="" | ||||||
|  | 
 | ||||||
|  | ########  Public functions ##################### | ||||||
|  | 
 | ||||||
|  | #Usage: dns_myapi_add   _acme-challenge.www.domain.com   "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" | ||||||
|  | dns_dreamhost_add() { | ||||||
|  |   fulldomain=$1 | ||||||
|  |   txtvalue=$2 | ||||||
|  | 
 | ||||||
|  |   if ! validate "$fulldomain" "$txtvalue"; then | ||||||
|  |     return 1 | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|  |   querystring="key=$DH_API_KEY&cmd=dns-add_record&record=$fulldomain&type=TXT&value=$txtvalue" | ||||||
|  |   if ! submit "$querystring"; then | ||||||
|  |     return 1 | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #Usage: fulldomain txtvalue | ||||||
|  | #Remove the txt record after validation. | ||||||
|  | dns_dreamhost_rm() { | ||||||
|  |   fulldomain=$1 | ||||||
|  |   txtvalue=$2 | ||||||
|  | 
 | ||||||
|  |   if ! validate "$fulldomain" "$txtvalue"; then | ||||||
|  |     return 1 | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|  |   querystring="key=$DH_API_KEY&cmd=dns-remove_record&record=$fulldomain&type=TXT&value=$txtvalue" | ||||||
|  |   if ! submit "$querystring"; then | ||||||
|  |     return 1 | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | ####################  Private functions below ################################## | ||||||
|  | 
 | ||||||
|  | #send the command to the api endpoint. | ||||||
|  | submit() { | ||||||
|  |   querystring=$1 | ||||||
|  | 
 | ||||||
|  |   url="$DH_API_ENDPOINT?$querystring" | ||||||
|  | 
 | ||||||
|  |   _debug url "$url" | ||||||
|  | 
 | ||||||
|  |   if ! response="$(_get "$url")"; then | ||||||
|  |     _err "Error <$1>" | ||||||
|  |     return 1 | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|  |   if [ -z "$2" ]; then | ||||||
|  |     message="$(echo "$response" | _egrep_o "\"Message\":\"[^\"]*\"" | cut -d : -f 2 | tr -d \")" | ||||||
|  |     if [ -n "$message" ]; then | ||||||
|  |       _err "$message" | ||||||
|  |       return 1 | ||||||
|  |     fi | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|  |   _debug response "$response" | ||||||
|  | 
 | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #check that we have a valid API Key | ||||||
|  | validate() { | ||||||
|  |   fulldomain=$1 | ||||||
|  |   txtvalue=$2 | ||||||
|  | 
 | ||||||
|  |   _info "Using dreamhost" | ||||||
|  |   _debug fulldomain "$fulldomain" | ||||||
|  |   _debug txtvalue "$txtvalue" | ||||||
|  | 
 | ||||||
|  |   #retrieve the API key from the environment variable if it exists, otherwise look for a saved key. | ||||||
|  |   DH_API_KEY="${DH_API_KEY:-$(_readaccountconf_mutable DH_API_KEY)}" | ||||||
|  | 
 | ||||||
|  |   if [ -z "$DH_API_KEY" ]; then | ||||||
|  |     DH_API_KEY="" | ||||||
|  |     _err "You didn't specify the DreamHost api key yet (export DH_API_KEY=\"<api key>\")" | ||||||
|  |     _err "Please login to your control panel, create a key and try again." | ||||||
|  |     return 1 | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|  |   #save the api key to the account conf file. | ||||||
|  |   _saveaccountconf_mutable DH_API_KEY "$DH_API_KEY" | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user