{ config, ... }: let inherit (config.networking) domain fqdn; in { services.caddy = { enable = true; globalConfig = '' pki { ca home { name "Home CA" } } skip_install_trust ''; virtualHosts = { "${fqdn}" = { extraConfig = '' tls { issuer internal { ca home } } ''; }; "acme.${domain}" = { # cd /var/lib/caddy && install -D -m 444 .local/share/caddy/pki/authorities/home/root.crt ca/root.crt serverAliases = [ "ca.${domain}" "http://ca.${domain}" ]; extraConfig = '' tls { issuer internal { ca home } } acme_server { ca home allow { domains *.test *.${domain} } } root /var/lib/caddy/ca file_server browse ''; }; }; }; services.dnsmasq.settings.cname = [ "acme.${domain},ca.${domain},${fqdn}" ]; }