From a7d859681f5508a829115376d9dd993f3f137321 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 3 Aug 2026 10:27:49 +0300 Subject: frontends: give f3s hosts a standby. SAN instead of a separate cert f3s hosts don't get a distinct standby certificate/keypair; alias the primary cert's files under the standby name (relayd selects a keypair by SNI, so it needs matching filenames) and add standby. as a SAN on the primary cert. Every host now also gets www. as a SAN unconditionally, since public DNS publishes www for all of them. Co-Authored-By: Claude Sonnet 5 --- frontends/etc/acme-client.conf.tpl | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'frontends/etc/acme-client.conf.tpl') diff --git a/frontends/etc/acme-client.conf.tpl b/frontends/etc/acme-client.conf.tpl index 0c9671d..727e7fe 100644 --- a/frontends/etc/acme-client.conf.tpl +++ b/frontends/etc/acme-client.conf.tpl @@ -28,11 +28,12 @@ authority buypass-test { # Skip ipv4/ipv6 subdomains - they're included as SANs in parent cert next if $host =~ /^(ipv4|ipv6)\./; -%> -<% # Check if this host has ipv4/ipv6 subdomains that need to be included as SANs - my @alt_names; - # Don't add www prefix for f3s hosts - they don't have DNS records for www variants - unless (grep { $_ eq $host } @$f3s_hosts) { - push @alt_names, "www.$host"; +<% # Public DNS publishes www for every service. f3s hosts use the primary + # certificate for standby too (unlike other hosts, they do not get a + # separate standby certificate/keypair). + my @alt_names = ("www.$host"); + if (grep { $_ eq $host } @$f3s_hosts) { + push @alt_names, "standby.$host"; } for my $sub_host (@$acme_hosts) { if ($sub_host =~ /^(ipv4|ipv6)\.\Q$host\E$/) { -- cgit v1.2.3