Für eigene (Unter-)Domänen ("[x.y.]example.org") funktioniert das; "x.y.example.org. CNAME a.b.example.org." erfordert streng genommen nur die Aufnahme von "x.y.example.org" ins TLS-Zertifikat/SAN, denn Anfragen an "a.b.example.org" werden hierbei ja "im Namen"/unter Verwendung von x.y.example.org gesendet.
genau das ist eben nicht so;
(1) ein DNS CNAME heisst nur, dass die DNS-Auflsg. bis zur IP-Adresse eben üiber einen anderen Host laufen kann, und wie in Deinem Bsp. (ich setze jetzt eine maximale Indirektion von 1 voraus) die IP-Adresse von a.b.example.org
(2) in Deinem Beispiel ist beides gültig: sowohl https://a.b.example.org/ als auch https://x.y.example.org/ und darum brauchst Du auch beides im SSL-Zert. (wenn nicht im Subject selbst dann zumindest in den SANs)
(3) und wenn an Stelle von a.b.example.org jetzt x.y.myfritz.net steht gilt das selbe;
(3) übernehme ich im Folgenden mal genau so, um es einfacher nachvollziehbar zu gestalten (und "Wildcard-kompatibel" zu halten).
(1) ist soweit korrekt; wenn man einen Eintrag "server.vpn.example.org. CNAME 0123456789abcdef.myfritz.net." hat, werden bei Anfragen an einen autoritativen Nameserver alle CNAME-Verweise aufgelöst und bei Verwendung von "curl -4|-6 http[s]://server.vpn.example.org:port" letztlich die IPv4-/IPv6-Adresse(n) kontaktiert, welche ermittelt werden konnte(n), sofern es welche gibt.
(2) Stimmt so nicht. Ich habe bspw. ein Wildcard-Zertifikat für *.vpn.example.org (+ vpn.example.org + example.org im Zertifikat und nichts anderes, s.u.), und wenn ich obigen curl-Befehl mit der richtigen Portnummer aufrufe, wobei der zugehörige Port an ein Endgerät weitergeleitet wird, welches mithilfe eines Webservers das entsprechende http[s]-Protokoll bedient, funktioniert alles wie erwartet. "0123456789.myfritz.net" wird ausschließlich beim DNS-Lookup ausgewertet (diese Auswertung ist insbesondere unabhängig von späteren Client-Anfragen); Client-Anfragen werden hier aber nach wie vor server.vpn.example.org verwenden (genau so ist CNAME ja definiert), was sich auch im Webserver-Log widerspiegelt. Nur genau dann, wenn direkt auf http[s]://0123456789.myfritz.net[:port] zugegriffen werden soll, brauche ich entweder ein separates oder kombiniertes (SAN-)TLS-Zertifikat.