Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

(Deprecated) letsencrypt-cpanel


I will probably be able to do maintenance and cPanel compatibility for at least a year. As far as I am aware, nobody other than me is using this. If you ARE using this plugin, please feel free to reach out for me.


This is a cPanel/WHM plugin for the Let's Encrypt client. This plugin uses Perl and the WHM API, and requires a server running cPanel and WHM on it.

Support for service SSL certificates has been recently added, and is considered to be in beta. Please report any issues you find so that we may address them.


Version 1.4


  • CentOS 5/6/7
  • If using CentOS 5, SNI is not supported at the OS level. Therefore, you'll either need static IP addresses for each domain on the system, or you will need to be using CentOS 6 or 7.


/usr/local/cpanel/3rdparty/bin/git clone
cd letsencrypt-cpanel

If everything goes well, you will see a new icon in the WHM >> Plugins section. Existing certificates will be shown, and you will be able to register new SSL certificates for domains on the server that do not yet have SSL associated with it.

Any SSL certificates added will automatically attempt renewal. You should not need to manually renew the certificates.


cd letsencrypt-cpanel
/usr/local/cpanel/3rdparty/bin/git pull


cd letsencrypt-cpanel


Status: 400, Detail: DNS name does not have enough labels, Type: urn:acme:error:malformed

Some OpenVZ VPS providers don't let hostname survive a reboot the way it needs to. Start by seeing how your hostname is formatted for your system like this:


If you see sub instead of, then it's formatted incorrectly. To fix the issue, you can do the following to correct the hostname, lock down permissions, then reboot the system:

hostnamectl set-hostname
chattr +i /etc/hostname

chattr will ensure that even root cannot write to the file to change it. Even on reboot.

If for some reason you want to modify the file again in the future, you can do this:

chattr -i /etc/hostname

403 error: Authorizations for these names not found or expired

Let's Encrypt verifies domains via http using the pathname .well-known and the subfolder acme-challenge, if there are any rules in .htaccess that redirect this folder to https (or elsewhere) the verification will fail. To exclude rewrites for the .well-known folder place the following line to .htaccess in your document root directly under RewriteEngine On:

RewriteRule ^.well-known(.*)$ - [L,NC]

If the .well-known folder is requested (by Let's Encrypt) it doesn't process further rules and avoids any SSL redirection that happens below it.