Een Let's Encrypt-wildcardcertificaat maken
Een Let’s Encrypt-wildcardcertificaat is nuttig wanneer meerdere subdomeinen met één certificaat moeten worden beveiligd, bijvoorbeeld app.example.com, vpn.example.com en portal.example.com. Dit kan praktisch zijn voor Sophos ZTNA, reverse proxies, testomgevingen of meerdere interne webdiensten.
De juiste verwachting is belangrijk: Let’s Encrypt-certificaten zijn kort geldig. Hun voordeel is niet een lange looptijd, maar gratis uitgifte en automatisering. Wanneer het certificaat handmatig via een DNS TXT-record wordt aangemaakt, moet de latere vernieuwing bewust worden gepland.
Voor een Sophos ZTNA-gateway is een wildcardcertificaat vereist. Sophos Central kan dit certificaat genereren en het vervolgens beheren en vernieuwen. Het kan ook met Certbot worden gemaakt zoals in dit artikel en als eigen certificaat worden geüpload. Als het certificaat rechtstreeks op Sophos Firewall voor WAF, WebAdmin of portals wordt gemaakt, is de ingebouwde firewallmethode meestal geschikter: Let’s Encrypt-certificaten op Sophos Firewall instellen.
Wanneer een wildcardcertificaat zinvol is
Een wildcardcertificaat dekt één niveau onder een domein. *.example.com dekt dus portal.example.com, maar niet automatisch example.com en ook niet a.b.example.com.
- Veel subdomeinen binnen dezelfde zone: Een wildcardcertificaat kan het beheer vereenvoudigen.
- Slechts één openbare dienst: Een certificaat voor één specifiek FQDN is vaak overzichtelijker.
- Het certificaat wordt op meerdere systemen gebruikt: Een wildcardcertificaat kan praktisch zijn, maar de verspreiding van de privésleutel moet strikt worden beheerd.
- Volledig automatische vernieuwing is nodig: Plan een DNS-provider met een Certbot-plugin of een andere ACME-client.
- Sophos Firewall hoeft alleen WAF, WebAdmin of portals te beveiligen: Controleer de ingebouwde Let’s Encrypt-methode van de firewall.
Een wildcardcertificaat is op zichzelf niet veiliger. Als dezelfde privésleutel op meerdere systemen staat, neemt de impact van een compromittering toe. Daarom moet worden vastgelegd op welke systemen het certificaat is geïmporteerd en wie verantwoordelijk is voor de privésleutel.
Vereisten
Voor een wildcardcertificaat zijn nodig:
- een eigen domein of gedelegeerde subdomeinzone
- voor Sophos Central, toestemming om het vereiste CNAME-record in DNS aan te maken en te wijzigen
- voor de handmatige Certbot-methode, toestemming om de DNS TXT-records van het domein aan te maken en te wijzigen
- voor de handmatige methode, een Linux-server of beheerwerkstation met Certbot
- voor de handmatige methode, toestemming om Certbot met rootrechten uit te voeren
- een plan voor vernieuwing, import en sleutelopslag dat past bij de gekozen methode
- toegang tot het doelsysteem, zoals Sophos ZTNA in Sophos Fusion, een reverse proxy of een firewall
Wildcardcertificaten worden gevalideerd met de DNS-01-challenge. Bij de handmatige Certbot-methode wordt hiervoor een TXT-record op _acme-challenge.example.com ingesteld. Bij de beheerde Sophos Central-methode delegeert een CNAME-record deze controle aan Sophos. De Let’s Encrypt-documentatie over challenge-typen beschrijft de fundamentele challenge-typen.
Voor Sophos ZTNA: het certificaat in Sophos Central maken
Voor een ZTNA-gateway is de beheerde methode in Sophos Central meestal eenvoudiger dan een handmatig Certbot-proces: Sophos genereert het Let’s Encrypt-certificaat en neemt daarna ook het beheer en de vernieuwing over. Het gebruikte gatewaydomein moet bekend zijn en toegang tot de DNS-provider is vereist.
Als de DNS-zone CAA-records gebruikt, moet Let’s Encrypt daarin als bevoegde certificeringsinstantie zijn toegestaan. Anders mag Let’s Encrypt ondanks een geslaagde domeinvalidatie geen certificaat uitgeven.
- Open in Sophos Central Mijn producten > ZTNA en klik op Instellingen.
- Open Domeinen en certificaten en klik op Domein toevoegen. Sophos staat hier maximaal 100 domeinen toe. Voer het domein in als
example.comen voeg het toe. - Sophos genereert een CNAME-waarde voor dit domein. Maak deze bij de DNS-provider aan onder
_acme-challenge.example.com. Vervangexample.comdoor het eigen gatewaydomein. - Ga terug naar Domeinen en certificaten, klik op Valideren en bevestig dat het CNAME-record is aangemaakt. Sophos controleert daarmee de zeggenschap over het domein.
- Klik na een geslaagde validatie op LE-certificaat genereren, lees en accepteer de Let’s Encrypt-abonneeovereenkomst en start de generatie. Volgens Sophos duurt dit ongeveer 60 seconden; de pagina kan tijdens het proces worden verlaten.
⚠️ Als onder
_acme-challenge.example.comal een TXT-record bestaat, moet dit worden verwijderd om het door Sophos gebruikte CNAME-record te kunnen gebruiken. Controleer eerst of een andere toepassing dat TXT-record nodig heeft. Het CNAME-record moet daarna in DNS blijven bestaan.
Voor domeinen die al in Sophos Central aanwezig zijn, hangt de procedure af van de validatiestatus:
- Al gevalideerd met een DNS TXT-record:
- Klik onder Mijn producten > ZTNA > Instellingen > Domeinen en certificaten op LE-certificaat genereren.
- Kopieer onder CNAME toevoegen het CNAME-record en maak dit bij de DNS-provider aan onder
_acme-challenge.example.com. - Verwijder een bestaand TXT-record op die locatie pas nadat de hierboven beschreven impactcontrole is uitgevoerd.
- Bevestig dat het CNAME-record is aangemaakt.
- Accepteer de Let’s Encrypt-abonneeovereenkomst en klik op Doorgaan.
- Voltooi de certificaatgeneratie en controleer onder Domeinen en certificaten of het domein en het CNAME-record in de nieuwe indeling worden weergegeven.
- Nog niet gevalideerd: Verwijder het bestaande domein, voeg het opnieuw toe via Domein toevoegen, valideer het met Valideren en genereer daarna het Let’s Encrypt-certificaat opnieuw met LE-certificaat genereren.
Sophos genereert per Central-account slechts één Let’s Encrypt-certificaat. Dit bevat alle gevalideerde domeinen. Als later nog een domein wordt gevalideerd, moet het certificaat opnieuw worden gegenereerd om dit domein op te nemen.
Open Mijn producten > ZTNA > Gateways om het certificaat aan een bestaande gateway te koppelen, selecteer de gateway en stel onder Domein en certificaat de optie Automatisch (Let’s Encrypt) in. Sla de wijziging op en controleer daarna op de gateway de geldigheid en vervaldatum van het certificaat. Schakel de gateway nog niet over op het nieuwe certificaat als de validatie of generatie nog niet met succes is afgerond; controleer eerst het CNAME-record bij de autoritatieve DNS-provider.
Certbot installeren
De Certbot-projectpagina adviseert voor veel Linux-omgevingen installatie via Snap. Op een geschikt Linux-systeem is de basisprocedure:
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
Als Certbot al via apt, dnf of een andere pakketbeheerder is geïnstalleerd, moet eerst worden gecontroleerd welk uitvoerbaar bestand daadwerkelijk wordt gebruikt. Parallelle installatiemethoden kunnen anders leiden tot een onverwachte versie of andere vernieuwingstaken dan bedoeld.
Het wildcardcertificaat handmatig maken
Voor handmatige DNS-validatie wordt Certbot uitgevoerd met --manual en --preferred-challenges dns. In dit voorbeeld moet het certificaat zowel example.com als *.example.com dekken:
sudo certbot certonly --manual --preferred-challenges dns -d example.com -d '*.example.com'
Certbot toont vervolgens één of meer TXT-waarden. Wanneer example.com en *.example.com tegelijk worden aangevraagd, ontstaan twee afzonderlijke DNS-01-challenges. Beide waarden moeten als aparte TXT-records op _acme-challenge.example.com worden toegevoegd. Voeg het tweede record toe zonder het eerste te overschrijven.
Voordat in Certbot wordt doorgegaan, moeten minimaal de autoritatieve nameservers van het domein en een externe resolver de verwachte TXT-waarden teruggeven. Eén resolver is slechts een indicatie, omdat DNS-providers wijzigingen afhankelijk van de locatie met verschillende snelheid kunnen verspreiden.
Praktische controle:
dig TXT _acme-challenge.example.com @1.1.1.1
De autoritatieve nameservers zijn te vinden met dig NS example.com. Daarna kan hetzelfde TXT-record rechtstreeks bij een van deze servers worden opgevraagd. Verwijder na een geslaagde validatie de challenge-TXT-waarden die niet meer nodig zijn. Oude waarden maken latere controles onoverzichtelijk en kunnen bij veel records het DNS-antwoord onnodig vergroten.
certonly: Een certificaat aanvragen of vernieuwen zonder het te installeren.--manual: De DNS-waarde handmatig instellen.--preferred-challenges dns: De DNS-01-challenge gebruiken.-d example.com: Het hoofddomein opnemen.-d '*.example.com': Het wildcarddomein opnemen.
Het hoofddomein en het wildcarddomein zijn afzonderlijke namen. Als alleen *.example.com wordt aangevraagd, wordt example.com niet automatisch opgenomen.
Wanneer beide namen tegelijk worden aangevraagd, kunnen meerdere TXT-records met dezelfde naam nodig zijn. DNS ondersteunt dit, en validaties mislukken vaak juist omdat een bestaande TXT-waarde per ongeluk wordt overschreven.
De certificaatbestanden vinden
Certbot toont de werkelijke certificaatnaam, opgenomen domeinen, vervaldatum en bestandspaden met deze opdracht die alleen informatie uitleest:
sudo certbot certificates
Na een geslaagde uitgifte staan de bestanden doorgaans onder:
/etc/letsencrypt/live/example.com/
Belangrijke bestanden:
fullchain.pem: Certificaat inclusief de intermediate certificaten.cert.pem: Alleen het servercertificaat.privkey.pem: Privésleutel.chain.pem: Intermediate certificaten.
Veel doelsystemen hebben fullchain.pem en privkey.pem nodig. Sommige importvensters verwachten het certificaat en de sleutel afzonderlijk, terwijl andere ook de chain vereisen. Controleer vóór de import welk formaat het doelsysteem verwacht.
⚠️
privkey.pemis de privésleutel. Dit bestand hoort niet thuis in tickets, chats, e-mail of onbeveiligde opslag. Iedereen die de privésleutel bemachtigt, kan het certificaat misbruiken.
De vernieuwing plannen
De handmatige methode met --manual is eenvoudig voor tests en eenmalige acties, maar slechts beperkt geschikt voor productiecertificaten. Zonder automatisering moet bij elke vernieuwing een nieuwe DNS TXT-waarde worden ingesteld.
Voor productie zijn er drie verstandige opties:
- DNS-plugin voor de DNS-provider: Geschikt wanneer Certbot DNS-records via een API mag bijwerken.
- Andere ACME-client met DNS-automatisering: Geschikt wanneer de provider of het platform beter door een andere client wordt ondersteund.
- Handmatige vernieuwing met een verantwoordelijke en kalenderherinnering: Alleen geschikt voor tests of zelden gebruikte certificaten.
DNS-API-gegevens zijn bijzonder gevoelig. Een DNS-token moet worden beperkt tot de benodigde zone en, waar mogelijk, tot de vereiste recordtypen. Inloggegevens met brede domeinbeheerrechten horen niet onbeveiligd op een webserver te staan.
De vernieuwing wordt normaal getest met:
sudo certbot renew --dry-run
Bij certificaten die met handmatige DNS-validatie zijn gemaakt, is deze test alleen zinvol wanneer het DNS-proces is geautomatiseerd of de handmatige hooks correct werken.
Een geslaagde vernieuwing op het Certbot-systeem werkt een eerder in Sophos Firewall, ZTNA of een reverse proxy geïmporteerd certificaat niet automatisch bij. Daarvoor is een gedocumenteerde herimport of een getest uitrolproces nodig dat alleen na een geslaagde vernieuwing wordt uitgevoerd. Na iedere uitrol worden namen, chain en nieuwe vervaldatum op het werkelijke doelsysteem gecontroleerd.
Importeren in Sophos-omgevingen
Controleer vóór import in Sophos ZTNA, een firewall, een reverse proxy of een ander Sophos-gerelateerd systeem het volgende:
- Komt de certificaatnaam overeen met de openbare hostname?
- Is naast het wildcarddomein ook het hoofddomein nodig?
- Verwacht het doelsysteem
fullchain.pemof afzonderlijke certificaatonderdelen? - Accepteert het de privésleutel of moet deze naar een ander formaat worden geconverteerd?
- Is er een gedocumenteerde procedure voor de volgende vernieuwing?
- Is bekend op welke systemen hetzelfde certificaat is geïmporteerd?
Voor Sophos ZTNA wordt het met Certbot gemaakte certificaat in Sophos Central aan de gateway toegewezen: open Mijn producten > ZTNA > Gateways, klik op de naam van de gateway en selecteer onder Domein en certificaat de optie Eigen certificaat uploaden. Upload het gegenereerde certificaat en klik op Opslaan. Controleer daarna op de gateway de geldigheid en vervaldatum; een certificaat dat bijna verloopt, moet worden vernieuwd, opnieuw worden geüpload en nogmaals op de gateway worden gecontroleerd.
Als het certificaat alleen voor WAF, WebAdmin of portals op Sophos Firewall nodig is, is het ingebouwde proces vaak eenvoudiger omdat uitgifte en vernieuwing rechtstreeks op de firewall plaatsvinden. Voor extern beheerde wildcardcertificaten blijft de Certbot- of ACME-methode relevant. Certificaten importeren en toewijzen op Sophos Firewall legt daarna uit hoe de privésleutel, CA-chain en servicetoewijzing worden gecontroleerd.
Typische fouten
- De validatie mislukt: Het TXT-record is nog niet zichtbaar, de DNS-zonenaam is onjuist of een van meerdere TXT-waarden is overschreven. Controleer met
dig TXT _acme-challenge.example.com @1.1.1.1. - Het certificaat dekt
example.comniet: Alleen*.example.comis aangevraagd. Voeg het hoofddomein toe met-d example.com. - Het certificaat dekt
a.b.example.comniet: De wildcard dekt slechts één subdomeinniveau. Plan een apart certificaat of een passende wildcard voor de diepere zone. - De vernieuwing wordt niet automatisch uitgevoerd: De handmatige DNS-methode is niet geautomatiseerd. Controleer of een geschikte DNS-plugin of andere ACME-client beschikbaar is.
- Certbot vernieuwt het certificaat, maar het doelsysteem presenteert nog het oude: De herimport of het uitrolproces is niet uitgevoerd. Controleer serienummer of vervaldatum rechtstreeks op het doel.
- De import mislukt: Bestand of formaat is onjuist. Vergelijk de vereisten voor
fullchain.pem,cert.pem,privkey.pemen de certificaatketen. - Kopieën van de sleutel vormen een beveiligingsrisico: De privésleutel staat op meerdere systemen. Documenteer opslaglocaties, toegangsrechten en importpunten.
Checklist
- Domein en vereist subdomeinniveau vastgelegd.
- Hoofddomein en wildcard bewust geselecteerd.
- Voor Sophos Central: DNS-toegang en toestemming voor het vereiste CNAME-record beschikbaar.
- Voor de handmatige Certbot-methode: DNS-toegang en toestemming voor TXT-records beschikbaar.
- Bewust gekozen voor uitgifte via Sophos Central of een externe ACME-client.
- Certbot voor de handmatige methode correct geïnstalleerd.
- Domeinvalidatie via de Sophos-CNAME of handmatige DNS-01-challenge met succes gecontroleerd.
- Bij de externe methode certificaatbestanden en privésleutel veilig opgeslagen.
- Bij de externe methode doelsysteem en vereist importformaat bekend.
- Vernieuwing via Sophos Central of met een verantwoordelijke, kalender of DNS-automatisering gepland.
- Bij de externe methode herimport of uitrolproces naar het doelsysteem getest.
- Oude certificaten en sleutels na een geslaagde migratie gecontroleerd verwijderd.
Veelgestelde vragen
Dekt een wildcardcertificaat het hoofddomein?
*.example.com dekt niet automatisch example.com. Als beide nodig zijn, moeten beide namen in het certificaat zijn opgenomen.Waarom vereist een wildcardcertificaat DNS-validatie?
Kan een handmatig gemaakt wildcardcertificaat automatisch worden vernieuwd?
Welke bestanden zijn nodig voor de import?
fullchain.pem en privkey.pem nodig. Afhankelijk van het doelsysteem kunnen ook cert.pem of chain.pem vereist zijn.