You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#!/usr/bin/env sh
# Here is a script to deploy cert to edgio using its API # https://docs.edg.io/guides/v7/develop/rest_api/authentication # https://docs.edg.io/rest_api/#tag/tls-certs/operation/postConfigV01TlsCerts
# This deployment required following variables # export EDGIO_CLIENT_ID="Your Edgio Client ID" # export EDGIO_CLIENT_SECRET="Your Edgio Client Secret" # export EDGIO_ENVIRONMENT_ID="Your Edgio Environment ID"
# If have more than one Environment ID # export EDGIO_ENVIRONMENT_ID="ENVIRONMENT_ID_1 ENVIRONMENT_ID_2"
# returns 0 means success, otherwise error.
######## Public functions #####################
#domain keyfile certfile cafile fullchain edgio_deploy() { _cdomain="$1" _ckey="$2" _ccert="$3" _cca="$4" _cfullchain="$5" _debug _cdomain "$_cdomain" _debug _ckey "$_ckey" _debug _ccert "$_ccert" _debug _cca "$_cca" _debug _cfullchain "$_cfullchain"
if [ -z "$EDGIO_CLIENT_ID" ]; then _err "EDGIO_CLIENT_ID is not defined." return 1 else _savedomainconf EDGIO_CLIENT_ID "$EDGIO_CLIENT_ID" fi
if [ -z "$EDGIO_CLIENT_SECRET" ]; then _err "EDGIO_CLIENT_SECRET is not defined." return 1 else _savedomainconf EDGIO_CLIENT_SECRET "$EDGIO_CLIENT_SECRET" fi
if [ -z "$EDGIO_ENVIRONMENT_ID" ]; then _err "EDGIO_ENVIRONMENT_ID is not defined." return 1 else _savedomainconf EDGIO_ENVIRONMENT_ID "$EDGIO_ENVIRONMENT_ID" fi _info "Getting access token" _data="client_id=$EDGIO_CLIENT_ID&client_secret=$EDGIO_CLIENT_SECRET&grant_type=client_credentials&scope=app.config" _debug Get_access_token_data "$_data" _response=$(_post "$_data" "https://id.edgio.app/connect/token" "" "POST" "application/x-www-form-urlencoded" ) _debug Get_access_token_response "$_response" _access_token=$(echo "$_response" | _json_decode | _egrep_o '"access_token":"[^"]*' | cut -d : -f 2 | tr -d '"') _debug _access_token "$_access_token" if [ -z "$_access_token" ]; then _err "Error in getting access token" return 1 fi
_info "Uploading certificate" string_ccert=$(sed 's/$/\\n/' "$_ccert" | tr -d '\n') string_cca=$(sed 's/$/\\n/' "$_cca" | tr -d '\n') string_key=$(sed 's/$/\\n/' "$_ckey" | tr -d '\n')
for ENVIRONMENT_ID in $EDGIO_ENVIRONMENT_ID; do _data="{\"environment_id\":\"$ENVIRONMENT_ID\",\"primary_cert\":\"$string_ccert\",\"intermediate_cert\":\"$string_cca\",\"private_key\":\"$string_key\"}" _debug Upload_certificate_data "$_data" _H1="Authorization: Bearer $_access_token" _response=$(_post "$_data" "https://edgioapis.com/config/v0.1/tls-certs" "" "POST" "application/json") if _contains "$_response" "message"; then _err "Error in deploying $_cdomain certificate to Edgio ENVIRONMENT_ID $ENVIRONMENT_ID." _err "$_response" return 1 fi _debug Upload_certificate_response "$_response" _info "Domain $_cdomain certificate successfully deployed to Edgio ENVIRONMENT_ID $ENVIRONMENT_ID." done
return 0 }
|