committed by
							
								 GitHub
								GitHub
							
						
					
				
				
				  
				  No known key found for this signature in database
				  
				  	
						GPG Key ID: B5690EEEBB952194
				  	
				  
				
			
		
		
		
	
				 1 changed files with 86 additions and 0 deletions
			
			
		| @ -0,0 +1,86 @@ | |||
| #!/usr/bin/env sh | |||
| 
 | |||
| keyhelp_api_deploy() { | |||
|   _cdomain="$1" | |||
|   _ckey="$2" | |||
|   _ccert="$3" | |||
|   _cca="$4" | |||
| 
 | |||
|   _debug _cdomain "$_cdomain" | |||
|   _debug _ckey "$_ckey" | |||
|   _debug _ccert "$_ccert" | |||
|   _debug _cca "$_cca" | |||
| 
 | |||
|   # Read config from saved values or env | |||
|   _getdeployconf DEPLOY_KEYHELP_HOST | |||
|   _getdeployconf DEPLOY_KEYHELP_API_KEY | |||
| 
 | |||
|   _debug DEPLOY_KEYHELP_HOST "$DEPLOY_KEYHELP_HOST" | |||
|   _secure_debug DEPLOY_KEYHELP_API_KEY "$DEPLOY_KEYHELP_API_KEY" | |||
| 
 | |||
|   if [ -z "$DEPLOY_KEYHELP_HOST" ]; then | |||
|     _err "KeyHelp host not found, please define DEPLOY_KEYHELP_HOST." | |||
|     return 1 | |||
|   fi | |||
|   if [ -z "$DEPLOY_KEYHELP_API_KEY" ]; then | |||
|     _err "KeyHelp api key not found, please define DEPLOY_KEYHELP_API_KEY." | |||
|     return 1 | |||
|   fi | |||
| 
 | |||
|   # Save current values | |||
|   _savedeployconf DEPLOY_KEYHELP_HOST "$DEPLOY_KEYHELP_HOST" | |||
|   _savedeployconf DEPLOY_KEYHELP_API_KEY "$DEPLOY_KEYHELP_API_KEY" | |||
| 
 | |||
|   _request_key="$(tr '\n' ':' <"$_ckey" | sed 's/:/\\n/g')" | |||
|   _request_cert="$(tr '\n' ':' <"$_ccert" | sed 's/:/\\n/g')" | |||
|   _request_ca="$(tr '\n' ':' <"$_cca" | sed 's/:/\\n/g')" | |||
| 
 | |||
|   _request_body="{ | |||
|     \"name\": \"$_cdomain\", | |||
|     \"components\": { | |||
|       \"private_key\": \"$_request_key\", | |||
|       \"certificate\": \"$_request_cert\", | |||
|       \"ca_certificate\": \"$_request_ca\" | |||
|     } | |||
|   }" | |||
| 
 | |||
|   _hosts="$(echo "$DEPLOY_KEYHELP_HOST" | tr "," " ")" | |||
|   _keys="$(echo "$DEPLOY_KEYHELP_API_KEY" | tr "," " ")" | |||
|   _i=1 | |||
| 
 | |||
|   for _host in $_hosts; do | |||
|     _key="$(_getfield "$_keys" "$_i" " ")" | |||
|     _i="$(_math "$_i" + 1)" | |||
| 
 | |||
|     export _H1="X-API-Key: $_key" | |||
| 
 | |||
|     _put_url="$_host/api/v2/certificates/name/$_cdomain" | |||
|     if _post "$_request_body" "$_put_url" "" "PUT" "application/json" >/dev/null; then | |||
|       _code="$(grep "^HTTP" "$HTTP_HEADER" | _tail_n 1 | cut -d " " -f 2 | tr -d "\r\n")" | |||
|     else | |||
|       _err "Cannot make PUT request to $_put_url" | |||
|       return 1 | |||
|     fi | |||
| 
 | |||
|     if [ "$_code" = "404" ]; then | |||
|       _info "$_cdomain not found, creating new entry at $_host" | |||
| 
 | |||
|       _post_url="$_host/api/v2/certificates" | |||
|       if _post "$_request_body" "$_post_url" "" "POST" "application/json" >/dev/null; then | |||
|         _code="$(grep "^HTTP" "$HTTP_HEADER" | _tail_n 1 | cut -d " " -f 2 | tr -d "\r\n")" | |||
|       else | |||
|         _err "Cannot make POST request to $_post_url" | |||
|         return 1 | |||
|       fi | |||
|     fi | |||
| 
 | |||
|     if _startswith "$_code" "2"; then | |||
|       _info "$_cdomain set at $_host" | |||
|     else | |||
|       _err "HTTP status code is $_code" | |||
|       return 1 | |||
|     fi | |||
|   done | |||
| 
 | |||
|   return 0 | |||
| } | |||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue