CPanel SSL: Issue free certificates in a non-root server

CPanel SSL: Issue free certificates in a non-root server

Since some shared hosting providers are tied to an option to buy a SSL certificate, with the help of the acme.sh script, you can issue free SSL certificates following the instructions:

📈 Go to the Terminal into your CPanel or SSH there

Cpanel

⬇️ Get the acme.sh script

Terminal window
curl https://get.acme.sh | sh

🔃 Refresh the terminal

Re-enter to the terminal or simply run

Terminal window
source ~/.bashrc

✉️ Register your email with the certificate

Terminal window
acme.sh --register-account --accountemail youremail@yourdomain.com

⏰ Check if cronjob was enabled by acme

Terminal window
crontab -l | grep acme.sh

The above command should output something like:

Terminal window
10 0 * * * “/home/*YOUR_CPANEL_USER*/.acme.sh”/acme.sh -- cron -- home “/home/*YOUR_CPANEL_USER*/.acme.sh” > /dev/null

📦 Set the domain variables in the terminal

Terminal window
export DOMAIN=yourdomain.com
# Press enter and write then
export WWWDOMAIN=www.yourdomain.com
# Don't forget to press enter again

🔑 Testing if the certificate generation works

Before testing if generate the certificate is allowed, you need the path of the domain / subdomain from your Cpanel. Execute the following command and you’ll get the path

Terminal window
export DOMAINPATH=$(uapi DomainInfo single_domain_data domain=$DOMAIN | grep documentroot| cut -d " " -f 6)

The result will be stored into DOMAINPATH

Then, you can use Acme to generate a STAGING certificate

Terminal window
acme.sh --issue --webroot ${DOMAINPATH} -d ${DOMAIN} -d ${WWWDOMAIN} --staging

Remember to only add -d $WWWDOMAIN, if you are using a www alias for your domain

If you receive green checks / messages. Congrats! You’re able to generate certificates into your Cpanel account.

🍄 Generating a real SSL certificate

Terminal window
acme.sh --issue --webroot ${DOMAINPATH} -d ${DOMAIN} -d ${WWWDOMAIN} --force

➕ Add your certificate to Cpanel

Terminal window
acme.sh --deploy --deploy-hook cpanel_uapi --domain ${DOMAIN} --domain ${WWWDOMAIN}

Remember, you’ll need to repeat each step from step “Set the domain variables in the terminal” and forward by each domain / subdomain whenever you add it.

My posts are not AI generated, they might be only AI corrected. The first draft is always my creation

Tags

Author

Written by Helmer Davila

In other languages

Ya que algunos proveedores de almacenamiento compartido (hosting) te atan a venderte un certificado SSL.

CPanel: Obtener certificados SSL gratis (no root)

On utilise le script acme

CPanel: Obtenez des certificats SSL gratuits (non-root)