Panellicense

Fix WHM AutoSSL failures — a decision tree

AutoSSL fails in five distinct ways. Identify which one you're hitting from the WHM log line, then apply the fix — DNS, HTTP-01, CAA, rate-limit, or DCV redirect.

5 min readUpdated 2026-05-15error · whm · autossl · cpanel
schema: TechArticleschema: FAQPageschema: BreadcrumbList

WHM's AutoSSL feature breaks in five distinct ways and the error message in the dashboard is usually the last failure in a chain, not the root cause. Read the per-domain log under SSL/TLS → Manage AutoSSL → Logs, find the first [ERROR] or Domain Control Validation Failed line, then match it against this decision tree.

1. "DNS DCV: No DNS record found"

The domain has no A or AAAA record pointing to this server, or it points elsewhere and the DNS DCV record isn't published.

Fix:

# Verify what cPanel thinks the domain resolves to
whmapi1 fetchdcvpassthroughdomains user=USERNAME

# Check actual DNS from outside the server
dig +short example.com A

If DNS doesn't point here, AutoSSL cannot succeed regardless of what else you do. Tell the customer to update DNS, or use the DNS-based DCV documentation to publish a TXT record on the existing DNS provider.

2. "HTTP DCV: 403 Forbidden" or "404 Not Found"

The Let's Encrypt validator can reach the server but can't read the challenge file under /.well-known/acme-challenge/. This is almost always a .htaccess redirect or a misconfigured WordPress security plugin.

Fix:

# Verify the .well-known path is reachable
curl -I http://example.com/.well-known/acme-challenge/test

# Look for offending .htaccess rules
grep -r "well-known" /home/USERNAME/public_html/.htaccess

The fix is usually to add an early-exit rule to the customer's .htaccess:

RewriteEngine On
RewriteRule ^\.well-known/acme-challenge/ - [L]

Place it before any force-https or WordPress rewrite blocks. If the site uses Cloudflare in proxy mode, also set Cloudflare's SSL mode to Full (strict) and disable "Always Use HTTPS" during AutoSSL runs — the redirect-to-HTTPS confuses the HTTP-01 validator.

3. "CAA record forbids issuance"

The domain has a CAA DNS record that doesn't allow Let's Encrypt (letsencrypt.org) or cPanel's other issuer (sectigo.com) to issue certificates.

Fix:

dig +short example.com CAA

If the output lists a different CA (globalsign.com, digicert.com), the domain owner needs to add a CAA record permitting the AutoSSL issuer:

example.com.  IN  CAA  0 issue "letsencrypt.org"
example.com.  IN  CAA  0 issue "sectigo.com"

CAA records are infrequent on shared hosting but common on enterprise domains being moved over from a managed-DNS service. Allow 24 hours for the new CAA to propagate before retrying.

4. "Rate limit exceeded"

Let's Encrypt rate-limits at 50 certificates per registered domain per week, and 5 duplicate certificates per week. You hit this most often when:

  • A customer site has flaky DNS and AutoSSL keeps retrying.
  • You just migrated 100 accounts and re-issued every cert in a single run.
  • Someone's running multiple AutoSSL runs in parallel from cron.

Fix: Stop the bleeding first:

# Pause AutoSSL for a week
whmapi1 disable_autossl_for_user user=USERNAME

# Check what got issued recently
crt.sh search for "example.com" in a browser

If you're rate-limited on a single domain, switch that domain to cPanel's secondary issuer (Sectigo) under SSL/TLS → Manage AutoSSL → Providers. If you're rate-limited on a registered parent domain that affects many subdomains, you have to wait — Let's Encrypt does not lift rate limits on request.

5. "Domain DCV passthrough redirected externally"

The domain redirects to a different domain (HTTP 301 to www.example.com from example.com, or to a completely different brand). AutoSSL follows up to 4 redirects, and each hop must remain on a server the AutoSSL agent controls.

Fix: Enable DCV passthrough in WHM → SSL/TLS → Manage AutoSSL → Options. This tells AutoSSL to follow cross-host redirects and validate at the destination. It's off by default for safety, but is the right setting for any account that uses an apex-to-www redirect via a CDN.

Decision tree

AutoSSL failed →
├─ "No DNS record"          → fix DNS, retry
├─ "403 / 404 on .well-known" → check .htaccess, Cloudflare, WordPress security plugins
├─ "CAA record forbids"     → add CAA for letsencrypt.org / sectigo.com
├─ "Rate limit exceeded"    → wait or switch issuer
└─ "DCV passthrough"        → enable passthrough in WHM AutoSSL options

When the issuer itself is the problem

Occasionally Let's Encrypt itself has an outage or a regional ACME server is slow. Check letsencrypt.status.io before chasing the customer. If the issuer is healthy and a single user's domains all fail at the same step, the cause is local to that user — usually a WAF rule, a .htaccess misconfiguration, or a global redirect.

For SSL issues on a freshly-installed server, double-check the cPanel installation post-checks — AutoSSL needs port 80 open inbound from the public internet, which some VPS providers block by default.

Why does AutoSSL fail only on some domains for one user?+
Usually a per-domain DNS issue or a per-domain redirect. The user-level config is fine; the failing domain doesn't resolve to this server, has a CAA record blocking issuance, or redirects somewhere AutoSSL can't follow. Check each failing domain individually with dig and curl.
Can I run AutoSSL manually from the command line?+
Yes. Run `/usr/local/cpanel/bin/autossl_check --user=USERNAME --verbose` to see the full per-domain log live, which is more informative than the WHM UI. Use `--all` to run across all accounts.
How long does AutoSSL take to retry after a failure?+
AutoSSL retries every 24 hours by default during the normal nightly run. Run `/usr/local/cpanel/bin/autossl_check --user=USERNAME` manually to retry immediately without waiting.
Does Cloudflare break AutoSSL?+
Only when set to Flexible SSL mode or with 'Always Use HTTPS' enabled while AutoSSL is trying to validate. Set Cloudflare to Full (strict), turn off Always Use HTTPS during validation runs, and turn it back on after. Or use DNS-based DCV instead of HTTP-01.
What's the difference between AutoSSL and the Let's Encrypt cPanel plugin?+
AutoSSL is cPanel's official, bundled tool — it ships with WHM. The third-party Let's Encrypt plugin is older and deprecated. If you have both installed, disable the third-party plugin, since they compete for cert ownership and fail in ways that look like AutoSSL bugs.

Next steps

Switch in an afternoon

Switch from your current reseller — free.

We migrate active cPanel, Plesk, LiteSpeed and CloudLinux licenses from any reseller. We prorate the first month so you never pay twice, and your customers see zero downtime during the swap.