Set Up cPanel SSL Management: Complete Certificate Tutorial

By Raman Kumar

Share:

Updated on May 06, 2026

Set Up cPanel SSL Management: Complete Certificate Tutorial

Understanding cPanel SSL Management

SSL certificates protect your hosting customers' data and boost search rankings. cPanel includes built-in tools that simplify certificate installation, renewal, and monitoring across multiple domains.

This tutorial walks you through setting up comprehensive cPanel SSL management. You'll configure Let's Encrypt integration, manage commercial certificates, and automate renewal processes.

We'll cover both shared hosting environments and VPS setups where you control the cPanel installation. The steps apply to cPanel version 102 and later, which includes enhanced SSL automation features.

Prerequisites and Access Requirements

You need WHM (Web Host Manager) root access to configure global SSL settings. Individual cPanel users can manage their own certificates, but server-wide automation requires administrative privileges.

Check your current cPanel version first:

/usr/local/cpanel/cpanel -V

Your server should have the following ports open:

  • Port 80 (HTTP) - Required for Let's Encrypt validation
  • Port 443 (HTTPS) - SSL/TLS traffic
  • Port 2083 (cPanel SSL) - Secure control panel access
  • Port 2087 (WHM SSL) - Secure administrative access

Verify DNS resolution works correctly for all domains you'll secure. Let's Encrypt validates domain ownership through HTTP challenges. Domains must resolve to the correct server IP.

Enable AutoSSL in WHM

AutoSSL automatically obtains and renews free SSL certificates from Let's Encrypt. Enable this feature in WHM first.

Log into WHM and navigate to SSL/TLS → Manage AutoSSL. Choose "Let's Encrypt™" as your provider and click "Enable".

Configure the AutoSSL settings:

  • Provider: Let's Encrypt™
  • Certificate Coverage: Enable for all new accounts
  • Domain Validation: HTTP challenge (recommended)
  • Renewal Behavior: Auto-renew 30 days before expiration

Save the configuration. cPanel will now automatically request certificates for new domains and existing domains without SSL coverage.

Test the integration by creating a new cPanel account. AutoSSL should provision a certificate within a few minutes of account creation.

Configure SSL Certificate Installation

Individual cPanel users can install their own certificates through the SSL/TLS interface. Here's the process from the user perspective.

Access cPanel and navigate to Security → SSL/TLS. You'll see several options:

  • Private Keys: Store and manage private keys
  • Certificates (CRT): Upload signed certificates
  • Certificate Signing Requests: Generate CSRs for commercial certificates
  • Install SSL Certificate: Apply certificates to domains

For commercial certificates, start by generating a Certificate Signing Request (CSR):

  1. Click "Certificate Signing Requests (CSR)"
  2. Select the domain from the dropdown
  3. Fill in your organization details
  4. Set key size to 2048 bits minimum
  5. Click "Generate"

Copy the CSR text and submit it to your certificate authority. Once you receive the signed certificate, return to cPanel for installation.

Install Commercial SSL Certificates

Commercial certificates require manual installation. They offer extended validation options and warranty coverage that some businesses require.

Navigate to SSL/TLS → Install and Manage SSL for your site (HTTPS). You'll need three pieces of information:

  • Certificate (CRT): The signed certificate from your provider
  • Private Key: Generated during CSR creation
  • Certificate Authority Bundle: Intermediate certificates (if provided)

Paste each component into the appropriate field. cPanel automatically validates the certificate chain and private key compatibility.

Select the domain from the "Install Certificate" dropdown. Click "Install Certificate" to apply the SSL configuration.

The installation updates your Apache or Nginx configuration automatically. Most hosting environments reload the web server configuration within 60 seconds.

Set Up SSL Monitoring and Alerts

Monitoring prevents certificate expiration issues that can cause site outages. cPanel includes built-in monitoring tools, but you should also implement external checks.

Enable expiration notifications in WHM under SSL/TLS → Manage AutoSSL → Notifications. Configure these settings:

  • Notification Email: Your administrative email address
  • Warning Period: 30 days before expiration
  • Critical Alert: 7 days before expiration
  • Include Certificate Details: Enabled

Create a monitoring script to check certificate status across all hosted domains:

#!/bin/bash
# SSL Certificate Monitoring Script

DOMAIN_LIST="/etc/ssl_domains.txt"
ALERT_DAYS=30

while IFS= read -r domain; do
    EXPIRY=$(echo | openssl s_client -connect "$domain:443" -servername "$domain" 2>/dev/null | 
             openssl x509 -noout -dates | grep notAfter | cut -d= -f2)
    
    EXPIRY_EPOCH=$(date -d "$EXPIRY" +%s)
    CURRENT_EPOCH=$(date +%s)
    DAYS_LEFT=$(( (EXPIRY_EPOCH - CURRENT_EPOCH) / 86400 ))
    
    if [ $DAYS_LEFT -lt $ALERT_DAYS ]; then
        echo "WARNING: $domain expires in $DAYS_LEFT days"
    fi
done < "$DOMAIN_LIST"

Run this script daily through cron to catch any certificates that AutoSSL might miss.

Configure Domain-Level SSL Settings

Fine-tune SSL configuration for individual domains through cPanel's SSL/TLS Status interface. This tool shows certificate status and allows per-domain customization.

Access SSL/TLS Status from the cPanel Security section. You'll see a table listing all domains with their current SSL status:

  • AutoSSL Enabled: Automatic certificate management active
  • SSL Installed: Certificate currently active
  • Expiration Date: When renewal is required
  • Actions: Manual renewal or configuration options

For high-traffic domains, consider disabling AutoSSL and using commercial certificates instead. Click the toggle next to any domain to disable automatic management.

Enable "Force HTTPS Redirect" for domains that should always use SSL. This setting adds Apache rewrite rules that redirect HTTP traffic to HTTPS automatically.

Configure HSTS (HTTP Strict Transport Security) headers for additional security. Add this directive to your .htaccess file:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Looking for reliable hosting with built-in SSL management? Hostperl Shared Hosting includes AutoSSL and full cPanel access. For more control over your SSL configuration, consider our managed VPS hosting with WHM root access.

Troubleshoot Common SSL Issues

SSL certificate problems can disrupt site access and damage user trust. Most issues stem from validation failures, expired certificates, or configuration errors.

AutoSSL Validation Failures

Check the AutoSSL log in WHM under SSL/TLS → Manage AutoSSL → View AutoSSL Log. Common failure reasons include:

  • DNS not pointing to your server
  • Domain blocked by firewall or security software
  • .htaccess rules interfering with validation
  • Rate limiting from Let's Encrypt (5 certificates per domain per week)

For DNS issues, verify your domain's A record points to the correct IP address. Use dig or nslookup to confirm resolution:

dig +short yourdomain.com

Mixed Content Warnings

HTTPS pages loading HTTP resources trigger browser security warnings. Scan your site for mixed content using browser developer tools or online checkers.

Common sources include:

  • Images loaded via HTTP URLs
  • JavaScript libraries from HTTP CDNs
  • Embedded videos or widgets
  • Form actions pointing to HTTP endpoints

Certificate Chain Issues

Incomplete certificate chains cause trust errors in some browsers. Always install the complete certificate bundle provided by your CA.

Test your certificate chain using SSL Labs' server test at ssllabs.com/ssltest. This tool identifies missing intermediate certificates and configuration problems.

Automate SSL Renewal Processes

While AutoSSL handles Let's Encrypt renewals automatically, commercial certificates require manual intervention. Set up monitoring and notification systems to prevent expiration surprises.

Create a renewal calendar that tracks all commercial certificates by expiration date. Start renewal processes 60-90 days before expiration to allow time for validation delays.

For organizations managing many certificates, consider using cPanel's API to automate certificate installation:

#!/bin/bash
# Automated certificate installation via cPanel API

CPANEL_USER="username"
CPANEL_PASS="password"
CPANEL_HOST="cpanel.yourdomain.com"
DOMAIN="example.com"
CERT_FILE="/path/to/certificate.crt"
KEY_FILE="/path/to/private.key"
CA_FILE="/path/to/ca-bundle.crt"

# Install certificate via API
curl -u "$CPANEL_USER:$CPANEL_PASS" \
     -d "domain=$DOMAIN" \
     -d "cert=$(cat $CERT_FILE)" \
     -d "key=$(cat $KEY_FILE)" \
     -d "cab=$(cat $CA_FILE)" \
     "https://$CPANEL_HOST:2083/execute/SSL/install_ssl"

This approach works well for agencies managing multiple client accounts. It also helps organizations with standardized certificate procurement processes.

Consider integrating with certificate management platforms like cert-manager for Kubernetes environments or commercial solutions that provide API-driven certificate lifecycle management.

Frequently Asked Questions

How long does AutoSSL take to issue certificates?

AutoSSL typically issues Let's Encrypt certificates within 5-10 minutes of domain creation. Delays usually indicate DNS or validation issues that require troubleshooting.

Can I use wildcard certificates with cPanel SSL management?

Yes, but wildcard certificates require DNS validation instead of HTTP validation. You'll need to install them manually through the SSL/TLS interface rather than using AutoSSL.

What happens if AutoSSL renewal fails?

cPanel continues using the existing certificate until manual intervention occurs. Failed renewals appear in the AutoSSL log with specific error messages to guide troubleshooting.

Should I disable AutoSSL for commercial certificates?

Yes, disable AutoSSL for domains using commercial certificates to prevent conflicts. You can selectively enable or disable AutoSSL per domain through the SSL/TLS Status interface.

How do I check SSL certificate expiration dates across all domains?

Use the SSL/TLS Status tool in cPanel to view expiration dates for all domains. For command-line monitoring, the openssl s_client command can check individual certificates programmatically.