Script to install SSL certificates (for example Let's Encrypt) with cPanel's JSON API
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

What is this?

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, 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.

How to use it?

To get help just run:


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.

Bash wrapper

Inside the wrapper folder you will find a bash script, which can be useful to combine cp-intallssl and to autorenew and install certificates.

Checkout its for more information, and a link to a step by step tutorial.


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).


WTF Public License