How certificates are issued
Certificates come from Let's Encrypt through an ACME client built into the panel. There is no certbot and nothing to schedule. When a site is created it gets a self-signed placeholder at once so HTTPS works immediately, and the real certificate is requested in the background; the site's overview usually shows it issued within 10 to 60 seconds of DNS pointing at the server.
The default challenge is HTTP-01: Let's Encrypt fetches a token from http://<domain>/.well-known/acme-challenge/, which every server block serves from /var/lib/aurapanel/acme/, including when the site redirects everything else to HTTPS.
DNS prerequisites
- An A record for the domain pointing at the server's public IPv4 address, and an AAAA record if the server has IPv6. The panel's dashboard shows the public address it detected.
- Port 80 reachable from the internet. The installer's firewall rules allow it; check your provider's firewall too.
- If the DNS record is proxied through Cloudflare (orange cloud), use DNS-01 below.
Wildcards and Cloudflare: DNS-01
Wildcard certificates, and domains whose origin is hidden behind Cloudflare or a firewall, use the DNS-01 challenge through the Cloudflare API.
- In Cloudflare, open My Profile → API Tokens and create a token with Zone · DNS · Edit on the zone. (Add Zone · SSL and Certificates · Edit only if you also use the panel's origin mTLS.)
- In the site's Security tab, paste the token under Cloudflare and turn on DNS-01 certificate challenge. The token is stored encrypted.
- Renew or wait for the next issuance. The panel creates the validation TXT record, completes the challenge and removes the record.
Cloudflare's proxy also caches. The panel marks its own API and interface responses CDN-Cache-Control: no-store, but your application's caching behaviour behind Cloudflare is your own configuration.
Renewal
A renewal loop starts 30 seconds after the panel boots and runs every 12 hours. Any certificate within 30 days of expiry is re-issued, with up to an hour of random delay per certificate so a server with many sites does not hit rate limits. A failed renewal records its error on the site and is retried at the next pass. To renew by hand, press Renew SSL on the site or run:
apcli ssl renew example.com Where the certificate lives: /etc/aurapanel/ssl/<domain>.crt and .key. Uploading your own certificate is not supported; the panel only manages certificates it issues.
Force HTTPS
Force HTTPS redirect in the site's Security tab is on for new sites. It redirects every HTTP request to HTTPS except the ACME challenge path, and it does nothing until a certificate has been issued, so a site is never redirected onto a placeholder. For an apex domain the server block also answers for the www. name.
The panel's own certificate
Set a panel domain (at install with --panel-domain=, or under Settings) and the panel issues a Let's Encrypt certificate for itself the same way. Until then it serves a self-signed certificate on https://<server-ip>:8443. See Install auraPanel.
Rate limits and staging
Let's Encrypt allows five identical certificates per registered domain per week. The panel avoids burning that budget: a valid certificate already on disk is reused rather than re-requested, and the installer can use Let's Encrypt's staging environment when it needs to test issuance repeatedly.
When issuance fails
The site's overview shows the last error verbatim. The panel also runs a reachability pre-flight and phrases the common causes:
"domain DNS may not point at this server, port 80 may be blocked…"
Check the A/AAAA record with dig +short example.com against the server's public IP, and that port 80 is open in your provider's firewall.
"HTTP-01 endpoint responded 200 but with the wrong body — something between you and the server is intercepting…"
A proxy or CDN in front of the server (usually Cloudflare) is answering the challenge itself. Switch the site to DNS-01.
"(this looks like a proxied / firewalled origin; enable Cloudflare DNS-01 in this site's SSL tab to issue via DNS instead)"
Same cause, reported by the ACME client after a failed HTTP-01. Use DNS-01.
"DNS-01 was selected but no Cloudflare API token is configured. Add one in this site's Security tab, or turn off Cloudflare DNS-01 to use HTTP-01."
The toggle is on without a token. Paste one, or turn the toggle off.
Cloudflare shows error 525 for a hostname
525 means Cloudflare reached the server but the TLS handshake failed. The server only completes handshakes for hostnames it has a server block for; a redirect hostname or a subdomain with no site returns exactly this. Create the site or redirect for that hostname. See Troubleshooting.