How Custom Domains Work in Hyvor Blogs
Description and use
Hyvor Blogs enables users to add custom domains with automatic Let’s Encrypt certificate handling via HTTP‑01, storing encrypted keys and renewing them, served by Caddy.
Problem
Managing custom domains for a multi‑tenant blogging platform requires routing, TLS certificate issuance, renewal, and secure storage without burdening users.
Outcome
Hyvor Blogs now supports unlimited custom domains per instance, with automated TLS certificate management via Let’s Encrypt and Caddy, reducing manual DNS and certificate work for users.
Workflow
- 1. User configures custom domain in Hyvor Blogs console.
- 2. Console displays DNS instructions (CNAME for cloud, A record for self‑hosted).
- 3. System verifies domain points to Hyvor servers via temporary route.
- 4. Hyvor registers a Let’s Encrypt account (once per instance).
- 5. Initiate ACME order for the domain using HTTP‑01 challenge.
- 6. Store challenge token and thumbprint in cache.
- 7. Respond to Let’s Encrypt challenge at /.well-known/acme‑challenge/{token} with {token}.{thumbprint}.
- 8. Upon validation, generate CSR and private key, finalize order.
- 9. Download certificate, encrypt private key, store in database with domain record.
- 10. Configure Caddy to fetch certificate via get_certificate http from Symfony endpoint.
- 11. Caddy serves HTTPS for the custom domain using the stored certificate.
- 12. System automatically renews certificates before expiry.
Evidence
TLS certificates are generated using Let's Encrypt / ACME.
Caddy's get_certificate fetches the TLS certificate from the app.
- Record date: 2026-09-20T09:45:32.494Z