Managing SSL certificates across multiple shared hosting accounts can quickly become a time-consuming headache. If you’re like me and have several domains spread across platforms like NameCheap’s shared hosting, you’ve probably noticed their SSL policy: a 1-year free PositiveSSL certificate for new domains, followed by paid renewals. While switching to free Let’s Encrypt certificates sounds like a great alternative, the manual renewal process every 90 days becomes tedious—especially when you’re juggling multiple accounts and domains.
The good news? There’s a way to automate Let’s Encrypt SSL renewals on shared hosting without upgrading to premium plugins or switching providers. Once you set it up, your certificates will auto-renew in the background, saving you hours of repetitive work.
This guide works with any shared hosting platform using cPanel, and the setup process is straightforward—taking just a few minutes per domain. Here’s how to do it:
Step 1: Enable Manage Shell
1.1 – Log in to your Namecheap cPanel.
1.2 – Navigate to the ‘Manage Shell’ and then “Enable SSH access”.
Step 2: Open the cPanel Terminal
cPanel > ‘Advanced’ section > Open ‘Terminal’
Step 3: Install acme.sh
In the Terminal run these commands to install acme, make it auto-upgrade and then set the default SSL provider to Let’s Encrypt:
curl https://get.acme.sh | sh
acme.sh –upgrade –auto-upgrade
acme.sh –set-default-ca –server letsencrypt
Step 4: Issue and install SSL certificates
4.1. SSL issue command:
acme.sh –issue -d DOMAIN.COM -w /home/PATH_TO/WEBSITE_DIRECTORY –server letsencrypt –force
4.2. Install command:
acme.sh –deploy -d DOMAIN.COM –deploy-hook cpanel_uapi
Step 5: You’re done. Congrats!
By following these steps, you should have a fully functioning SSL setup for your domain with auto-renewal configured. You can review all domains in the auto-renewal list with this command:
acme.sh –list
You can also verify the deploy hook is saved for each live domain with this command (copy all three lines at once):
for f in ~/.acme.sh/*_ecc/*.conf; do
echo “== $f ==”; grep -E ‘Le_DeployHook|Le_Webroot’ “$f”
done
You can now navigate back to cPanel > ‘Manage Shell’ and disable it.
Leave a Reply