Benötige ich ein separates SSL-Zertifikat für eine DNS-Umleitung?

17

Ich implementiere eine mandantenfähige Anwendung, in der meine Anwendung die technische Dokumentation für das Produkt eines Mandanten hostet und bereitstellt.

Der Ansatz, über den ich nachdachte, war: Ich hosten die Dokumentation unter docs.<tenant>.mycompany.comund fordere meinen Mandanten auf, einen CNAME-DNS-Eintrag einzurichten, auf den verwiesen werden docs.tenantcompany.comsoll docs.<tenant>.mycompany.com.

Ich möchte, dass die Site mit dem Zertifikat meines Mandanten SSL-fähig wird. Ich wollte wissen, ob mein Mandantenunternehmen ein Wildcard-SSL-Zertifikat hat. Funktioniert es mit diesem Setup oder muss ein neues SSL-Zertifikat gekauft werden docs.tenantcompany.com?

Codematix
quelle
Zur Verdeutlichung haben Sie einen Platzhalter für * .mycompany.com?
Zymhan
@WildVelociraptor Ja, ich habe ein Wildcard-SSL-Zertifikat für*.mycompany.com
Codematix
@codematix Zur Vermeidung von Zweifeln wird ein Platzhalterzertifikat für *.example.com nicht übereinstimmen docs.tenantname.example.com ! Der Platzhalter ist nur für eine "Unterdomäne" gültig. es wird docs-tenantname.example.com zum Beispiel passen . Der S3 von Amazon ist ein gutes Beispiel dafür: Das *.s3.amazonaws.comZertifikat schlägt fehl, wenn auf einen Bucket mit einem Punkt zugegriffen wird, z. B. www.example.com(der mit einem Hostnamen wie z. B. endet www.example.com.s3.amazonaws.com). Solche Bucket-Namen sind für das S3-Webhosting erforderlich.
Calrion
Beachten Sie, dass Sie durch die Verwendung eines c-namens, der auf Ihren eigenen Server verweist, die Notwendigkeit eines vom Mandanten bereitgestellten Zertifikats vermeiden können. Einige Zertifikatanbieter (einschließlich letsencrypt.org ) unterstützen die Überprüfung der Domain-Inhaberschaft über https. Aus Sicherheitsgründen ist dieser Ansatz weit überlegen (bereits in serverfault.com/a/765957/4480 erörtert ). Es ist in Ordnung, dem Mieter zu gestatten, sein eigenes Zertifikat bereitzustellen (obwohl es für den Mieter einfacher ist, es selbst zu erstellen), aber er sollte KEIN Platzhalterzertifikat bereitstellen.
Brian

Antworten:

39

Der Zertifikatname muss mit der Eingabe des Benutzers im Browser übereinstimmen, nicht mit dem endgültigen DNS-Eintrag. Wenn der Benutzer eingibt, muss docs.tenantcompany.comIhr SSL-Zertifikat dies abdecken.

Wenn docs.tenantcompany.comein CNAME foo.example.com, wird das Zertifikat nicht abdecken müssen foo.example.com, nur docs.tenantcompany.com.

Jason Martin
quelle
25

Jasons Antwort ist richtig. Aber nur um die Begriffe hier ein bisschen zu klären, ist "DNS-Umleitung" ein bisschen eine Fehlbezeichnung. DNS hat CNAME-Einträge (auch bekannt als Aliase), bei denen es sich um einen Namen handelt, der auf einen anderen Namen verweist. Aber es ist keine Umleitung. Die Übersetzung von Name zu Name zu IP geschieht alles im Hintergrund und Ihr Browser kümmert sich nur um den Anfangsnamen.

Das Einzige, was umgeleitet wird, sind Webserver, bei denen der Server Ihrem Browser ausdrücklich anweist, woanders hinzugehen. Wenn Ihr Web - Server wurde tatsächlich eine Umleitung auf den anderen Namen zu tun, Sie würden tatsächlich Zert müssen für beide Namen , weil Ihr Browser letztlich an beide separat anschließen würde.

Ryan Bolger
quelle
2
Danke, dass du mich korrigiert hast. Sie haben Recht, es ist keine Umleitung, sondern ein CNAME-Alias.
Codematix
Mein Kunde hat eine Server Amit Domain example.com. Ich habe eine Website für ihn erstellt und die Website in gepflegt Server B. Mein Client hat seinen DNS konfiguriert, A Recordder dog.example.comauf die IP-Adresse meines Servers verweist Server B. Jetzt bekommt mein Client SSL für dog.example.com. Meine Frage ist, muss mein Kunde mir die SSL-Zertifizierung geben, damit ich sie einbinden kann Server B? Oder muss er es einfach reinstecken Server A? Oder was sollen wir sonst noch tun? Wir sind beide verwirrt, danke!
user2875289
1
Wenn der A-Datensatz für dog.example.comdirekt auf die IP Ihres Servers verweist, dann ja. Ihr Server muss das Zertifikat und den privaten Schlüssel für diesen Namen enthalten. Server A in Ihrem Beispiel ist irrelevant.
Ryan Bolger
@ RyanBolger Ja, genau wie du gesagt hast. Mein Kunde hat ein Zertifikat beantragt dog.example.comund mir das Zertifikat und den privaten Schlüssel zugesandt. Ich lege diese hinein Server Bund konfiguriere Nginx, um sie zu verwenden. Und jetzt funktioniert alles gut. Danke!
user2875289
Nur eine Anmerkung zu einem technischen Aspekt; da es jetzt "ALIAS" -Datensätze gibt, würde ich nicht sagen, dass CNAME auch Aliase sind;]
Garet Claborn
9

Ich wollte wissen, ob mein Mandantenunternehmen ein Wildcard-SSL-Zertifikat hat. Funktioniert es mit diesem Setup oder muss ein neues SSL-Zertifikat gekauft werden docs.tenantcompany.com?

Kurze Antwort: Nein. Wenn Ihr Mieterunternehmen einen Platzhalter im Namen *.tenantcompany.comhat, reicht dies aus, um die Installation auf Ihrem Server durchzuführen und die Zugriffe über diesen Namen abzudecken. Ob Sie dies tun möchten oder nicht, ist eine andere Geschichte.

Ein Zertifikat im Namen docs.<tenant>.mycompany.com(z. B. ein direktes Zertifikat oder ein Platzhalter *.<tenant>.mycompany.com) ist unbrauchbar, wenn der Zugriff immer über den docs.tenantcompany.comNamen erfolgt.


Längere Antwort

Angenommen, Sie suchen https://docs.tenantcompany.comin einem vernünftigen Browser nach. Der Browser führt TLS über das HTTP-Protokoll aus. Es geht speziell um zwei Dinge; Das:

  • Das DNS-Subsystem des Browsers und des Betriebssystems gibt die IP-Adresse eines geeigneten Hosts zurück, auf dem ein Webserver an einem geeigneten Port an einer anderen Stelle im lokalen Netzwerk oder im Internet ausgeführt wird. Für HTTPS-Verkehr (gesichert) wird der Standardport verwendet, 443sofern in der URL nichts anderes angegeben ist.

  • Wenn der TLS-Handshake zwischen dem Browser und dem Remote-Server stattfindet, zeigt der Server ein vertrauenswürdiges Zertifikat an, mit dem er einen TLS-Dienst an der angeforderten Adresse ( docs.tenantcompany.com) bereitstellen kann .

DNS

Der Browser sieht DNS als Blackbox. Es ruft eine geeignete DNS-Bibliothek auf, um eine Zuordnung von einem freundlichen vollqualifizierten Domänennamen (FQDN) zu einer geeigneten IP-Adresse (v4 oder v6) anzufordern. Es ist egal, wie es diese IP-Adresse bekommt. Befinden sich CNAMEim DNS zwischen dem ursprünglichen Eintrag und einem Aoder Eintrag 20 Aliase AAAA, folgt der DNS-Resolver diesen, bis eine IP-Adresse erhalten wird.

TLS

Wenn der Browser die führt TLS - Handshake , braucht es , um zu überprüfen , dass der Server mit kommuniziert wird ermächtigt , einen sicheren Website - Dienst auf dem FQDN verlangt , um: docs.tenantcompany.com.

Denken Sie daran: Der Browser kümmert sich nicht darum docs.<tenant>.mycompany.com- der DNS-Resolver hat das gesamte Wissen über die Indirektion über einen CNAMEDatensatz entzogen.

Unsere Methode zur Autorisierung des Servers für die Bereitstellung sicherer Sitzungen docs.tenantcompany.comerfolgt über ein SSL-Zertifikat, das von einer Behörde signiert ist, für die im Stammzertifikatsspeicher des Browsers eine vorherige Vertrauenswürdigkeit hergestellt wurde. Dies ist nicht immer die stärkste Form der Authentifizierung von Server zu Client - im zentralisierten CA-Modell können viele Probleme auftreten - aber es ist die beste, die wir derzeit haben.

Hier gibt es zwei weitere Einschränkungen:

Schlüssel teilen

Viele kommerzielle SSL-Zertifikatsanbieter signieren nur eine einzelne Signaturanforderung, wodurch das Platzhalterzertifikat effektiv an einen einzelnen privaten Schlüssel gebunden wird. Das Mieterunternehmen hat möglicherweise Schwierigkeiten, dies außerhalb seiner Organisation zu teilen, da jeder, der über den privaten Schlüssel verfügt, offensichtlich die Kommunikation mit den anderen gesicherten Systemen des Mieterunternehmens beeinträchtigen kann.

Einige Anbieter signieren mehrere Zertifikatsignieranforderungen unter demselben Zertifikat, sodass ein einzelnes Platzhalterzertifikat auf mehreren Servern und Systemen installiert werden kann, ohne den privaten Schlüssel zwischen ihnen zu teilen.

Maskieren

Wenn das Mandantenunternehmen Ihnen eine Kopie seines Platzhalterzertifikats zur Verfügung stellt (entweder durch Freigabe des privaten Schlüssels oder durch Signieren Ihres eigenen CSR), können Sie sich als maskieren <anydomain>.tenantcompany.comund einen wichtigen Schutz aufheben, der die Integrität der im tenantcompany.comDNS-Namespace identifizierten Server gewährleistet . Dies könnte sowohl für Sie als auch für das Mieterunternehmen aus rechtlicher / haftungsrechtlicher Sicht eine schlechte Position sein.

Kosmischer Ossifrage
quelle
Vielen Dank für die ausführliche Antwort. Es ist sehr hilfreich und hat mir geholfen, die ethischen und rechtlichen Aspekte meiner Bemühungen zu berücksichtigen.
Codematix