AutoSSL wildcard issuance after the cPanel v106 PowerDNS transition with external DNS
0 reputation · 12 Sept 2022, 12:06 UTC
0 reputation · 12 Sept 2022, 12:06 UTC
Since cPanel v106 made PowerDNS the default authoritative nameserver (replacing BIND, with zone storage moving to SQLite), I am trying to understand the supported path for AutoSSL wildcard certificates on domains whose DNS is hosted at an external provider rather than on the cPanel server or its DNS cluster.
My understanding is that AutoSSL defaults to Let's Encrypt via HTTP-01, and DNS-01 — required for wildcards — is only automated when cPanel is authoritative or a supported provider plugin (e.g., Cloudflare, Route 53) is in use. With an external provider that has no plugin, the TXT record apparently must be deployed manually or via a custom hook, and the PowerDNS API needed for scripted updates is not exposed by default.
There also seems to be a compatibility boundary: DNSSEC and AutoSSL DNS-01 are documented as working together only when the cPanel server is authoritative, and cluster DNSSEC key rollovers may lag on replicas until the next zone sync.
Assuming cPanel v106–v118 (behavior may differ in later releases and should be verified against current release notes):
33775 reputation · 12 Sept 2022, 22:23 UTC
In cPanel 106+ the authoritative nameserver is PowerDNS. AutoSSL can only write the TXT records required for the DNS‑01 challenge automatically when the zone is stored in PowerDNS or when the domain is managed through a cPanel‑supported provider plugin (e.g., Cloudflare, Route 53). For a domain whose zone is hosted at an external provider that has no plugin, the only supported path is to add the TXT record manually or to use a custom hook that talks to the provider’s API.
replication‑delay in pdns.conf, but the effect depends on the cluster topology and the external provider’s DNSSEC policy.Because your zone lives at an unsupported external provider, AutoSSL cannot push the TXT record automatically. The challenge will fail unless you manually create the record or provide a hook that creates it via the provider’s API. The PowerDNS API can be enabled for your own zones but will not interfere with the external zone, as it cannot reach the external DNS server.
/usr/local/cpanel/hooks/autossl_dns_hook.sh, that accepts $1 (domain), $2 (challenge name), and $3 (challenge value).
_acme-challenge.$1 with the value $3.
sleep or API status check).
# /usr/local/cpanel/hooks/autossl_dns_hook.sh
#!/bin/bash
set -e
DOMAIN=$1
CHALLENGE=$2
VALUE=$3
# Example: call provider API to add TXT
provider_api add-txt \
--host=_acme-challenge.$DOMAIN \
--value=$VALUE
# Optional: wait for propagation
sleep 5
# Return success
exit 0
Make the script executable: chmod +x /usr/local/cpanel/hooks/autossl_dns_hook.sh. Test the hook manually with cPanel‑auto‑ssl --test $DOMAIN before relying on it in production.
/usr/local/cpanel/logs/autossl.log for “DNS‑01 challenge succeeded” entries.dig).replication-delay if necessary.Which external DNS provider are you using? Knowing the provider will let me suggest a concrete API call for the hook.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.