2017-07-10 11:36:16 +00:00
|
|
|
#!/usr/bin/env sh
|
2017-07-02 19:24:14 +00:00
|
|
|
# Here is the script to deploy the cert to your cpanel using the cpanel API.
|
2017-07-10 11:36:16 +00:00
|
|
|
# Uses command line uapi.
|
|
|
|
# Cpanel username is needed only when run as root (I did not test this).
|
|
|
|
# Returns 0 when success.
|
2017-07-02 19:24:14 +00:00
|
|
|
# Written by Santeri Kannisto <santeri.kannisto@2globalnomads.info>
|
|
|
|
# Public domain, 2017
|
2017-02-11 05:24:00 +00:00
|
|
|
|
|
|
|
#export DEPLOY_CPANEL_USER=myusername
|
|
|
|
|
|
|
|
######## Public functions #####################
|
|
|
|
|
|
|
|
#domain keyfile certfile cafile fullchain
|
2017-07-02 19:24:14 +00:00
|
|
|
|
2017-02-11 05:24:00 +00:00
|
|
|
cpanel_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"
|
|
|
|
|
2017-07-02 19:24:14 +00:00
|
|
|
# read cert and key files and urlencode both
|
2017-07-10 11:36:16 +00:00
|
|
|
_certstr=$(cat "$_ccert")
|
|
|
|
_keystr=$(cat "$_ckey")
|
2017-07-02 19:24:14 +00:00
|
|
|
_cert=$(php -r "echo urlencode(\"$_certstr\");")
|
|
|
|
_key=$(php -r "echo urlencode(\"$_keystr\");")
|
|
|
|
|
|
|
|
_debug _cert "$_cert"
|
|
|
|
_debug _key "$_key"
|
|
|
|
|
2017-07-10 11:36:16 +00:00
|
|
|
if [ "$(id -u)" = 0 ]; then
|
|
|
|
_opt="--user=$DEPLOY_CPANEL_USER"
|
|
|
|
_debug _opt "$_opt"
|
|
|
|
fi
|
2017-07-02 19:24:14 +00:00
|
|
|
|
2017-07-10 11:36:16 +00:00
|
|
|
_response=$(uapi $_opt SSL install_ssl domain="$_cdomain" cert="$_cert" key="$_key")
|
2017-07-02 19:24:14 +00:00
|
|
|
|
2017-07-10 11:36:16 +00:00
|
|
|
if [ $? -ne 0 ]; then
|
2017-07-02 19:24:14 +00:00
|
|
|
_err "Error in deploying certificate:"
|
2017-07-10 11:36:16 +00:00
|
|
|
_err "$_response"
|
2017-07-02 19:24:14 +00:00
|
|
|
return 1
|
|
|
|
fi
|
2017-02-11 05:24:00 +00:00
|
|
|
|
2017-07-10 11:36:16 +00:00
|
|
|
_debug response "$_response"
|
2017-07-02 19:24:14 +00:00
|
|
|
_info "Certificate successfully deployed"
|
2017-07-10 11:36:16 +00:00
|
|
|
return 0
|
2017-02-11 05:24:00 +00:00
|
|
|
}
|