mirror of
				https://github.com/acmesh-official/acme.sh
				synced 2025-11-04 05:46:05 +08:00 
			
		
		
		
	Compare commits
	
		
			5 Commits
		
	
	
		
			08246f7005
			...
			82ff65c3d4
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					82ff65c3d4 | ||
| 
						 | 
					0c7943868d | ||
| 
						 | 
					3cdce86339 | ||
| 
						 | 
					f7cc72be35 | ||
| 
						 | 
					17da49bb78 | 
							
								
								
									
										86
									
								
								deploy/keyhelp_api.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								deploy/keyhelp_api.sh
									
									
									
									
									
										Normal file
									
								
							@@ -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
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user