diff --git a/deploy/vmwareuag.sh b/deploy/vmwareuag.sh index 89d32307..b1a75a30 100644 --- a/deploy/vmwareuag.sh +++ b/deploy/vmwareuag.sh @@ -2,12 +2,12 @@ # Script for acme.sh to deploy certificates to a VMware UAG appliance # -# The following variables can be exported: +# The following variables can be used: # -# export DEPLOY_VMWAREUAG_USERNAME="admin" +# export DEPLOY_VMWAREUAG_USERNAME="admin" - optional # export DEPLOY_VMWAREUAG_PASSWORD="" - required -# export DEPLOY_VMWAREUAG_HOST="" - required (space seperated list) host:port -# export DEPLOY_VMWAREUAG_HTTPS_INSECURE="1" - defaults to insecure +# export DEPLOY_VMWAREUAG_HOST="" - required - host:port - comma seperated list +# export DEPLOY_VMWAREUAG_HTTPS_INSECURE="1" - optional - defaults to insecure # # @@ -25,11 +25,6 @@ vmwareuag_deploy() { DEPLOY_VMWAREUAG_USERNAME_DEFAULT="admin" DEPLOY_VMWAREUAG_HTTPS_INSECURE="1" - if [ -f "${DOMAIN_CONF}" ]; then - # shellcheck disable=SC1090 - . "${DOMAIN_CONF}" - fi - _debug _cdomain "${_cdomain}" _debug _ckey "${_ckey}" _debug _ccert "${_ccert}" @@ -72,8 +67,10 @@ vmwareuag_deploy() { # Set variables for later use _user="${Le_Deploy_vmwareuag_username}:${Le_Deploy_vmwareuag_password}" - _privatekeypem="$(awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' <"${_ckey}")" - _certchainpem="$(awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' <"${_cfullchain}")" + # convert key and fullchain into "single line pem" for JSON request + _privatekeypem="$(tr '\n' '\000' <"${_ckey}" | sed 's/\x0/\\n/g')" + _certchainpem="$(tr '\n' '\000' <"${_cfullchain}" | sed 's/\x0/\\n/g')" + # api path _path="/rest/v1/config/certs/ssl/end_user" _debug _user "${_user}" @@ -83,23 +80,20 @@ vmwareuag_deploy() { # Create JSON request _jsonreq="$(printf '{ "privateKeyPem": "%s", "certChainPem": "%s" }' "${_privatekeypem}" "${_certchainpem}")" - _debug JSON "${_jsonreq}" + _debug _jsonreq "${_jsonreq}" # dont verify certs if config set - _old_HTTPS_INSECURE="${HTTPS_INSECURE}" if [ "${Le_Deploy_vmwareuag_https_insecure}" = "1" ]; then + # shellcheck disable=SC2034 HTTPS_INSECURE="1" fi # do post against UAG host(s) - for _host in ${Le_Deploy_vmwareuag_host}; do + for _host in $(echo "${Le_Deploy_vmwareuag_host}" | tr ',' ' '); do _url="https://${_host}${_path}" _debug _url "${_url}" _post "${_jsonreq}" "${_url}" "" "PUT" "application/json" done - # reset HTTP_INSECURE - HTTPS_INSECURE="${_old_HTTPS_INSECURE}" - return 0 }