Control Panels

Free SSL in 2026: Let’s Encrypt on cPanel (AutoSSL) and on Linux Servers (Certbot)

Short answer: On a cPanel server, use AutoSSL: in WHM open SSL/TLS > Manage AutoSSL, choose a provider, and run it for all users. Certificates install and renew on their own. On a server without a control panel, install Certbot and run sudo certbot --nginx or sudo certbot --apache. Certbot sets up automatic renewal. Check renewal with sudo certbot renew --dry-run.

How free SSL certificates work

Let’s Encrypt is a free, automated certificate authority. Before it issues a certificate, it checks that you control the domain, usually by fetching a file from the website (HTTP validation) or by checking a DNS record (DNS validation). The certificate is valid for a short time and is renewed automatically before it expires.

Let’s Encrypt certificates have been valid for 90 days. Let’s Encrypt is reducing standard certificate lifetimes towards 45 days over the next few years, which makes automatic renewal even more important. Never rely on renewing by hand.

Option 1: cPanel and WHM (AutoSSL)

AutoSSL is built into cPanel. It issues and renews certificates for every domain on the server, including addon domains and subdomains.

  1. Log in to WHM as root.
  2. Go to SSL/TLS > Manage AutoSSL.
  3. On the Providers tab, choose an AutoSSL provider (for example Let’s Encrypt) and save.
  4. On the Manage Users tab, make sure AutoSSL is enabled for the accounts that need it.
  5. Click Run AutoSSL For All Users, then check the logs on the Logs tab.

Account owners can check their own certificates in cPanel under Security > SSL/TLS Status, and run AutoSSL for their domains from there.

Why AutoSSL skips a domain

Log message or symptom Cause Fix
Domain does not resolve to this server DNS points elsewhere (for example a CDN or an old server) Point the A record at the server, or use DNS validation.
Validation file not reachable An .htaccess redirect or a security rule blocks /.well-known/ Allow /.well-known/acme-challenge/ before other rewrite rules.
Rate limit reached Too many certificates were requested for the same domain in a short time Wait, then run AutoSSL again. Avoid repeated manual runs.
www works, the bare domain does not (or the reverse) One of the names has no DNS record Add the missing A or CNAME record.

Option 2: Linux servers without a control panel (Certbot)

Certbot is the official Let’s Encrypt client from the EFF. Install it from your distribution’s packages.

Debian and Ubuntu

sudo apt update
sudo apt install -y certbot python3-certbot-nginx     # or python3-certbot-apache
sudo certbot --nginx -d example.com -d www.example.com

AlmaLinux and Rocky Linux

sudo dnf install -y epel-release
sudo dnf install -y certbot python3-certbot-nginx  # or python3-certbot-apache
sudo certbot --nginx -d example.com -d www.example.com

Certbot asks for an email address for expiry notices, gets the certificate, and updates the web server configuration to use HTTPS. Replace example.com with your domain, and list every name the certificate should cover.

Certificate only, without changing the web server

If you prefer to edit the web server configuration yourself, use the webroot method. It only places the validation file in your site folder:

sudo certbot certonly --webroot -w /var/www/example.com/public -d example.com -d www.example.com

The certificate and key are saved in /etc/letsencrypt/live/example.com/. Point your web server at fullchain.pem and privkey.pem.

Check automatic renewal

# Test renewal without changing anything
sudo certbot renew --dry-run

# Check that the renewal timer is active
systemctl list-timers | grep -i certbot

# See which certificates exist and when they expire
sudo certbot certificates

If the dry run fails, fix it now: the same error will stop the real renewal. The most common cause is a firewall or redirect that blocks the validation request.

Redirect HTTP to HTTPS

Once the certificate works, send all visitors to HTTPS. On cPanel, turn on Force HTTPS Redirect for each domain under Domains. With Certbot, choose the redirect option when it asks. Then update the site’s own URL settings, for example the WordPress Address and Site Address, so pages do not load mixed content.

Common mistakes after switching to HTTPS

Mistake What happens How to avoid it
Mixed content The browser shows a warning or blocks images and scripts loaded over HTTP Update links in the database and theme to HTTPS. In WordPress, a search-and-replace of the old URL fixes most cases.
Turning on HSTS too early Visitors cannot reach the site if the certificate later fails Enable HSTS only after HTTPS has worked for a while, and start with a short max-age.
Wrong SSL mode on a CDN Redirect loops, or traffic that is unencrypted between the CDN and the server With Cloudflare, use Full (strict) once the server has a valid certificate.
Certificate for www only The bare domain shows a certificate error Include both names when you request the certificate.

Certificates for mail and cPanel services

Website certificates do not cover the server’s own services, such as WHM, cPanel, webmail and the mail server, when clients connect to the server’s hostname. In WHM, check Service Configuration > Manage Service SSL Certificates. The hostname needs a valid certificate too, so mail clients connect without warnings. If you change the server hostname, check this page again.

Wildcard and IP address certificates

  • Wildcard certificates (*.example.com) need DNS validation. Certbot supports this with a DNS plugin for your DNS provider.
  • Certificates for an IP address are possible with Let’s Encrypt short-lived certificates. See our guide to SSL for public IPs.

For more on securing a cPanel server, see our cPanel security tips and the CSF firewall guide.

Need help with this?

Want SSL handled for you? Our cPanel hosting includes AutoSSL, and our server management team can set up Certbot on your VPS.

See server management plansContact @CustomerPanel

Frequently asked questions

Is a free Let’s Encrypt certificate as secure as a paid one?

Yes, for encryption. Let’s Encrypt certificates use the same encryption as paid domain-validated certificates. Paid certificates can add organisation validation or a warranty, but the connection security is the same.

How often do Let’s Encrypt certificates renew?

They have been valid for 90 days, and Let’s Encrypt is reducing standard lifetimes towards 45 days. AutoSSL and Certbot renew them automatically before they expire.

Why did AutoSSL not issue a certificate for my domain?

Usually because the domain does not point to the server, or because a redirect or security rule blocks the validation file. Check the AutoSSL logs in WHM for the exact reason.

Do I need a dedicated IP address for SSL?

No. Modern browsers and servers use SNI (Server Name Indication), which lets many sites share one IP address, each with its own certificate. A dedicated IP is only needed for a certificate issued for the IP address itself.

Can I get a wildcard certificate for free?

Yes. Let’s Encrypt issues wildcard certificates, but only with DNS validation, so you need a DNS plugin or API access to your DNS provider.


Sources