cp-installssl, a PHP script to install SSL certificates with cPanel's JSON API
It is heavily based on code by Rob Parham.
I created the script specifically to upload Let's Encrypt SSL certificates to Namecheap shared hosting, which does not support Let's Encrypt out of the box.
In fact you can request SSH access your Namecheap shared hosting, install acme.sh, install this repository and create a cron job to call my bash wrapper (see below) to renew the certificates and auto install them.
Obviously you can use to automate any other SSL configuration with a certificate from other providers by just using cp-installssl PHP script.
To get help just run:
./cp-installssl
You will need an INI file with the configuration (host, port, user, password...) to access your CPanel. You can either place it at ~/.cp-installssl.ini or create an environment variable CPINSTALSSL_CFG to point to any other file with the config.
You have an example at this very same repository.
Inside the wrapper folder you will find a bash script, which can be useful to combine cp-intallssl and acme.sh to autorenew and install certificates.
Checkout its README.md for more information.
The script will only work with cPanel installations supporting the JSON API v2, and using SSL.
Also note that you will need cURL enabled in PHP at the instance where you plan to run this script (does not need to be the same running cPanel).