Photo by Unsplash

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 script, you can issue free SSL certificates following the instructions:

📈 Go to the Terminal into your CPanel or SSH there


⬇️ Get the script

curl | sh

🔃 Refresh the terminal

Re-enter to the terminal or simply run
source ~/.bashrc

✉️ Register your email with the certificate

1 —-register-account —-accountemail

⏰ Check if cronjob was enabled by acme

crontab -l | grep
The above command should output something like:
10 0 * * * “/home/*YOUR_CPANEL_USER*/”/ —- cron —- home “/home/*YOUR_CPANEL_USER*/” > /dev/null

📦 Set the domain variables in the terminal

# Press enter and write then
# 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
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
1 —-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

1 —-issue —-webroot ${DOMAINPATH} -d ${DOMAIN} -d ${WWWDOMAIN} —-force

➕ Add your certificate to Cpanel

1 —-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


Written by Helmer Davila