mirror of
https://github.com/acmesh-official/acme.sh.git
synced 2025-04-29 19:32:45 +00:00
Merge 346809b7e172eab7a4d4bf6e69c099600bc23673 into 9b267bb5725eca0b2b8f34682aca89f5d3fbcb5e
This commit is contained in:
commit
92a425c85a
99
deploy/vmwareuag.sh
Normal file
99
deploy/vmwareuag.sh
Normal file
@ -0,0 +1,99 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# Script for acme.sh to deploy certificates to a VMware UAG appliance
|
||||
#
|
||||
# The following variables can be used:
|
||||
#
|
||||
# DEPLOY_VMWAREUAG_USERNAME="admin" - optional
|
||||
# DEPLOY_VMWAREUAG_PASSWORD="" - required
|
||||
# DEPLOY_VMWAREUAG_HOST="" - required - host:port - comma seperated
|
||||
# DEPLOY_VMWAREUAG_HTTPS_INSECURE="1" - optional - defaults to insecure
|
||||
#
|
||||
#
|
||||
|
||||
######## Public functions #####################
|
||||
|
||||
#domain keyfile certfile cafile fullchain
|
||||
vmwareuag_deploy() {
|
||||
_cdomain="$1"
|
||||
_ckey="$2"
|
||||
_ccert="$3"
|
||||
_cca="$4"
|
||||
_cfullchain="$5"
|
||||
|
||||
# Some defaults
|
||||
DEPLOY_VMWAREUAG_USERNAME_DEFAULT="admin"
|
||||
DEPLOY_VMWAREUAG_HTTPS_INSECURE_DEFAULT="1"
|
||||
|
||||
_debug _cdomain "${_cdomain}"
|
||||
_debug _ckey "${_ckey}"
|
||||
_debug _ccert "${_ccert}"
|
||||
_debug _cca "${_cca}"
|
||||
_debug _cfullchain "${_cfullchain}"
|
||||
|
||||
# USERNAME is optional. If not provided then assume "${DEPLOY_VMWAREUAG_USERNAME_DEFAULT}"
|
||||
_getdeployconf DEPLOY_VMWAREUAG_USERNAME
|
||||
_debug2 DEPLOY_VMWAREUAG_USERNAME "${DEPLOY_VMWAREUAG_USERNAME}"
|
||||
if [ -z "${DEPLOY_VMWAREUAG_USERNAME}" ]; then
|
||||
DEPLOY_VMWAREUAG_USERNAME="${DEPLOY_VMWAREUAG_USERNAME_DEFAULT}"
|
||||
fi
|
||||
_savedeployconf DEPLOY_VMWAREUAG_USERNAME
|
||||
|
||||
# PASSWORD is required.
|
||||
_getdeployconf DEPLOY_VMWAREUAG_PASSWORD
|
||||
_debug2 DEPLOY_VMWAREUAG_PASSWORD "${DEPLOY_VMWAREUAG_PASSWORD}"
|
||||
if [ -z "${DEPLOY_VMWAREUAG_PASSWORD}" ]; then
|
||||
_err "DEPLOY_VMWAREUAG_PASSWORD is required"
|
||||
return 1
|
||||
fi
|
||||
_savedeployconf DEPLOY_VMWAREUAG_PASSWORD
|
||||
|
||||
# HOST is required.
|
||||
_getdeployconf DEPLOY_VMWAREUAG_HOST
|
||||
_debug2 DEPLOY_VMWAREUAG_HOST "${DEPLOY_VMWAREUAG_HOST}"
|
||||
if [ -z "${DEPLOY_VMWAREUAG_HOST}" ]; then
|
||||
_err "DEPLOY_VMWAREUAG_HOST is required"
|
||||
return 1
|
||||
fi
|
||||
_savedeployconf DEPLOY_VMWAREUAG_HOST
|
||||
|
||||
# HTTPS_INSECURE is optional. If not provided then assume "${DEPLOY_VMWAREUAG_HTTPS_INSECURE_DEFAULT}"
|
||||
_getdeployconf DEPLOY_VMWAREUAG_HTTPS_INSECURE
|
||||
_debug2 DEPLOY_VMWAREUAG_HTTPS_INSECURE "${DEPLOY_VMWAREUAG_HTTPS_INSECURE}"
|
||||
if [ -z "${DEPLOY_VMWAREUAG_HTTPS_INSECURE}" ]; then
|
||||
DEPLOY_VMWAREUAG_HTTPS_INSECURE="${DEPLOY_VMWAREUAG_HTTPS_INSECURE_DEFAULT}"
|
||||
fi
|
||||
_savedeployconf DEPLOY_VMWAREUAG_HTTPS_INSECURE
|
||||
|
||||
# Set variables for later use
|
||||
_user="${DEPLOY_VMWAREUAG_USERNAME}:${DEPLOY_VMWAREUAG_PASSWORD}"
|
||||
# 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}"
|
||||
_debug _privatekeypem "${_privatekeypem}"
|
||||
_debug _certchainpem "${_certchainpem}"
|
||||
_debug _path "${_path}"
|
||||
|
||||
# Create JSON request
|
||||
_jsonreq="$(printf '{ "privateKeyPem": "%s", "certChainPem": "%s" }' "${_privatekeypem}" "${_certchainpem}")"
|
||||
_debug _jsonreq "${_jsonreq}"
|
||||
|
||||
# dont verify certs if config set
|
||||
if [ "${DEPLOY_VMWAREUAG_HTTPS_INSECURE}" = "1" ]; then
|
||||
# shellcheck disable=SC2034
|
||||
HTTPS_INSECURE="1"
|
||||
fi
|
||||
|
||||
# do post against UAG host(s)
|
||||
for _host in $(echo "${DEPLOY_VMWAREUAG_HOST}" | tr ',' ' '); do
|
||||
_url="https://${_host}${_path}"
|
||||
_debug _url "${_url}"
|
||||
_post "${_jsonreq}" "${_url}" "" "PUT" "application/json"
|
||||
done
|
||||
|
||||
return 0
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user