b1n23
8 months ago
1 changed files with 80 additions and 0 deletions
@ -0,0 +1,80 @@ |
|||||
|
#!/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" |
||||
|
|
||||
|
#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') |
||||
|
_data="{\"environment_id\":\"$EDGIO_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." |
||||
|
_err "$_response" |
||||
|
return 1 |
||||
|
fi |
||||
|
_debug Upload_certificate_response "$_response" |
||||
|
_info "Domain $_cdomain certificate successfully deployed to Edgio." |
||||
|
return 0 |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue