Wrote missing cpanel.sh

This script I wrote works for me on GoDaddy, but I don't have any other hosting services or cpanel version to test it. Hope it's better than nothing for you. Thanks for your great script!
Cheers,
Santeri
This commit is contained in:
2globalnomads 2017-07-02 23:24:14 +04:00 committed by GitHub
parent c53f36a777
commit 6c3430b6e5
1 changed files with 35 additions and 7 deletions

View File

@ -1,8 +1,9 @@
#!/usr/bin/env sh
#Here is the script to deploy the cert to your cpanel account by the cpanel APIs.
#returns 0 means success, otherwise error.
#!/bin/bash
# Here is the script to deploy the cert to your cpanel using the cpanel API.
# Uses command line uapi. Cpanel username is needed only when run as root.
# Returns 0 when success, otherwise error.
# Written by Santeri Kannisto <santeri.kannisto@2globalnomads.info>
# Public domain, 2017
#export DEPLOY_CPANEL_USER=myusername
#export DEPLOY_CPANEL_PASSWORD=PASSWORD
@ -10,6 +11,7 @@
######## Public functions #####################
#domain keyfile certfile cafile fullchain
cpanel_deploy() {
_cdomain="$1"
_ckey="$2"
@ -23,7 +25,33 @@ cpanel_deploy() {
_debug _cca "$_cca"
_debug _cfullchain "$_cfullchain"
_err "Not implemented yet"
return 1
# read cert and key files and urlencode both
_certstr=`cat "$_ccert"`
_keystr=`cat "$_ckey"`
_cert=$(php -r "echo urlencode(\"$_certstr\");")
_key=$(php -r "echo urlencode(\"$_keystr\");")
_debug _cert "$_cert"
_debug _key "$_key"
if [[ $EUID -eq 0 ]]
then
_opt="--user=$DEPLOY_CPANEL_USER SSL install_ssl"
else
_opt="SSL install_ssl"
fi
_debug _opt "$_opt"
response=$(uapi $_opt domain="$_cdommain" cert="$_cert" key="$_key")
if [ $? -ne 0 ]
then
_err "Error in deploying certificate:"
_err "$response"
return 1
fi
_debug response "$response"
_info "Certificate successfully deployed"
}