Uitleg HTTPS / SVCB
Wat is een HTTPS/SVCB-record?
Een browser die jouw site opvraagt weet in eerste instantie alleen je IP-adres: dat staat in je A- en AAAA-records. Al het andere moet hij tijdens het verbinden uitvinden. Of je server HTTP/3 aankan bijvoorbeeld, of dat de site eigenlijk ergens anders staat. Dat kost een omweg, en soms een extra ronde heen en weer. Het HTTPS-record vult dat gat. Het staat op je domeinnaam naast je A/AAAA-records en zegt vooraf hoe er verbinding gemaakt moet worden. SVCB is de algemene vorm van hetzelfde idee, bedoeld voor elke dienst. HTTPS is de variant die speciaal voor websites is gemaakt.
Wat er in het record staat
Een HTTPS-record heeft een prioriteit, een doelnaam en een rij parameters. Het simpelste geval ziet er zo uit: example.com. HTTPS 1 . alpn="h3,h2".
De 1 is de prioriteit: een lager getal wordt eerst geprobeerd. De punt betekent 'hetzelfde adres als deze naam', dus je A/AAAA-records blijven gelden. En alpn="h3,h2" zegt dat deze server HTTP/3 en HTTP/2 spreekt. Een browser weet daarmee vóór het eerste pakket dat hij HTTP/3 mag proberen, in plaats van eerst HTTP/2 op te zetten en pas daarna te ontdekken dat het sneller kan.
De parameters die je in het wild tegenkomt:
- alpn: welke protocollen de server spreekt (h3, h2).
- ipv4hint en ipv6hint: adressen die de browser meteen mag gebruiken, zodat hij niet nóg een DNS-vraag hoeft te stellen.
- port: een afwijkende poort.
- ech: de sleutel voor Encrypted Client Hello, waarmee de naam van de site die je opvraagt niet meer leesbaar over de lijn gaat.
Het verschil met een CNAME
Een HTTPS-record kan ook naar een andere naam wijzen, en dan lijkt het op een CNAME: example.com. HTTPS 1 cdn.provider.net. alpn="h3,h2".
Het verschil is belangrijk. Een CNAME mag niet op je apex (example.com zelf) staan naast andere records. Dat is een van de klassieke DNS-beperkingen. Een HTTPS-record mag dat wél, dus je kunt op je apex naar een CDN verwijzen zonder de trucs die providers daarvoor bedacht hebben (ANAME, ALIAS, CNAME-flattening).
Het vervangt je A/AAAA-records niet. Kent een browser HTTPS-records niet, of geeft een oudere resolver ze niet door? Dan gebruikt die gewoon je A/AAAA. Daarom blijven die altijd nodig.
Heb je het nodig?
Nee. Zonder HTTPS-record werkt je site precies zoals altijd. Browsers ontdekken tijdens het verbinden wel wat je server kan. Daarom telt het ontbreken ervan in je meetrapport niet als fout. Het is winst als je het hebt, geen gebrek als je het mist.
Het is wel gratis winst in drie gevallen: - Je server ondersteunt HTTP/3 en je wilt dat bezoekers dat meteen gebruiken in plaats van na een omweg. - Je wilt ECH aanzetten, zodat de opgevraagde hostnaam niet meer leesbaar meegaat. Dat kan alleen via dit record. - Je wilt je apex naar een CDN laten wijzen zonder providerspecifieke CNAME-trucs.
In de praktijk zet je het zelden met de hand. Zit je achter Cloudflare, Fastly of een vergelijkbare partij? Dan publiceren zij het record voor je. Deze uitleg is dan vooral het antwoord op de vraag wat dat record doet dat je niet zelf hebt aangemaakt.
Waar het op stuk kan lopen
Het record moet kloppen met de werkelijkheid. Staat er alpn="h3" terwijl je server geen HTTP/3 doet, dan probeert een browser iets wat niet lukt en valt hij daarna terug. Je hebt de omweg dan toegevoegd in plaats van weggehaald. Hetzelfde geldt voor een ipv4hint met een adres dat niet meer in gebruik is.
Oudere resolvers en firewalls gaven onbekende recordtypes ook niet altijd door. Dat is inmiddels grotendeels verholpen, maar het is de reden dat je A/AAAA-records altijd naast je HTTPS-record blijven bestaan. Een HTTPS-record is een optimalisatie bovenop een werkende situatie, nooit de enige route naar je site.
Veelgestelde vragen
Is het slecht als ik geen HTTPS/SVCB-record heb?
Nee. Voor veel sites is dat nog gewoon de normale situatie. Browsers gebruiken dan je A/AAAA-records en zoeken tijdens het verbinden uit wat je server kan. Je verliest er geen punten mee in de meting.
Wat is het verschil tussen HTTPS en SVCB?
Hetzelfde mechanisme, twee recordtypes. SVCB is de algemene vorm, bedoeld voor elke dienst. HTTPS is de speciale variant voor websites, die browsers automatisch opvragen voor https://-verkeer. Voor een website publiceer je dus een HTTPS-record.
Kan ik hiermee een CNAME op mijn apex vervangen?
Deels. Een HTTPS-record mag wel naast andere records op je apex staan en naar een CDN wijzen, wat een CNAME daar niet mag. Maar je A/AAAA-records blijven nodig voor iedereen die het record niet kent, dus het vervangt de providertrucs niet volledig.
Moet ik het zelf aanmaken?
Meestal niet. Grote CDN's en hosters publiceren het automatisch. Wil je het wel zelf, dan moet je DNS-provider het recordtype ondersteunen. Zorg dan dat de parameters kloppen met wat je server echt aankan.