it-swarm-eu.dev

Welche Zertifikate werden für mehrstufige Subdomains benötigt?

Ich arbeite an einer Website mit mehreren Ebenen von Subdomains. Ich muss alle mit SSL sichern und versuche, die richtige Zertifikatstrategie zu ermitteln.

Folgendes muss ich sichern:

  • foo.com
  • www.foo.com
  • Beliebige Kombination von city.state.foo.com. (Dies sind US-Bundesstaaten.)

Nach meinem Verständnis kann ein Platzhalterzertifikat nur eine "Ebene" der Subdomain abdecken. gemäß RFC 2818 :

Namen können das Platzhalterzeichen * enthalten, das mit einer einzelnen Domainnamenkomponente oder einem einzelnen Komponentenfragment übereinstimmt. Zum Beispiel entspricht * .a.com foo.a.com, aber nicht bar.foo.a.com. f * .com entspricht foo.com, aber nicht bar.com.

Was ich denke ich brauche, sind die folgenden Zertifikate:

  • *.foo.com, Entspricht beispielsweise foo.com, www.foo.com. (Obwohl mir nicht klar ist, ob *.a.com Selbst mit a.com Übereinstimmt.)
  • *.ny.foo.com Passend zu new-york.ny.foo.com, buffalo.ny.foo.com Usw. Ich werde schließlich 50 solcher Zertifikate benötigen, um allen Status zu entsprechen, sobald unsere Website erweitert wurde, um sie alle zu bedienen.

Meine Fragen sind:

  • Ist dieses Schema korrekt? Wenn ein Benutzer im obigen Szenario ca.foo.com Besucht, erhält er dann das Zertifikat für *.foo.com Oder für *.ca.foo.com?
  • Wie kann ich sicherstellen, dass Benutzer alle diese Subdomains als rechtmäßig in unserem Besitz ansehen? Wenn ein Benutzer beispielsweise foo.com Besucht, erhält mountain-view.ca.foo.com Und dies sind unterschiedliche Zertifikate. Erhält er dann eine Warnung? Gibt es eine Möglichkeit, dem Browser zu versichern, dass diese Zertifikate denselben Eigentümer haben?
114
Nathan Long

Theoretisch:

  • a * entspricht genau einer Ebene (daher stimmt *.foo.com nicht mit foo.com überein)
  • sie können jedoch mehrere * in einem Namen haben

Wenn also alle SSL-Implementierungen genau RFC 2818 folgen, benötigen Sie nur drei Zertifikate mit Namen:

  • foo.com
  • *.foo.com
  • *.*.foo.com

und wenn die Implementierungen wirklich gut mit RFC 2818 und den Feinheiten von X.509 umgehen können, können Sie sogar ein einzelnes Zertifikat verwenden, in dem die drei aufgeführt sind Zeichenfolgen oben in der Erweiterung Betreff Alt Name.

Nun passen Theorie und Praxis perfekt zusammen ... in der Theorie. Sie können Überraschungen mit dem haben, was Browser tatsächlich tun. Ich schlage vor, Sie probieren es aus; Einige Beispielzertifikate können mit dem Befehlszeilentool OpenSSL erstellt werden (siehe zum Beispiel diese Seite für einige Richtlinien).

76
Tom Leek

RFC 6125 ist relativ neu und wird nicht von allen implementiert, versucht jedoch, einige dieser Probleme zu klären. Es sammelt die Identitätsspezifikation in RFC 2818 und RFCs anderer Protokolle. Ich würde vorschlagen, RFC 6125 einzuhalten, wenn Sie können. Die relevanten Abschnitte für Platzhalterzertifikate sind 6.4. und 7.2 (was die Verwendung von Platzhalterzertifikaten tatsächlich abschreckt).

Aus Ihrer Frage geht nicht hervor, ob Sie einen einzelnen Webserver ausführen möchten (oder zumindest alles hinter einer einzelnen IP-Adresse ausführen möchten) oder ob Sie ein Zertifikat pro Standort (und damit eine IP-Adresse) haben können pro Site, da SNI im Allgemeinen nicht sehr gut unterstützt wird).

Sie könnten ein einzelnes Zertifikat mit mehreren alternativen Antragstellernamen (SANs) haben. Das Problem ergibt sich aus dem Fall mit zwei Platzhalteretiketten, die möglicherweise nicht eindeutig angegeben sind (*.*.foo.com).

Wenn der doppelte Platzhalter funktioniert, sollte ein Zertifikat mit diesen 3 SAN DNS-Einträgen) funktionieren:

  • foo.com
  • *.foo.com
  • *.*.foo.com

Da dies jedoch möglicherweise nicht funktioniert (abhängig von den Implementierungen des Clients, die wahrscheinlich nicht unter Ihrer Kontrolle stehen) und Sie die 50 Status auflisten können, können Sie 52 SAN DNS-Einträge:

  • foo.com
  • *.foo.com
  • *.ny.foo.com
  • ... (eine für jeden Staat)

Wie kann ich sicherstellen, dass Benutzer alle diese Subdomains als rechtmäßig in unserem Besitz ansehen? Wenn ein Benutzer beispielsweise foo.com, berg-view.ca.foo.com und unterschiedliche Zertifikate besucht, wird er dann gewarnt? Gibt es eine Möglichkeit, dem Browser zu versichern, dass diese Zertifikate denselben Eigentümer haben?

Dies ist eine schwierige Frage, da dies davon abhängt, wie vertraut die Benutzer mit dem Zertifikatüberprüfungsprozess sind. Sie könnten ein erweitertes Validierungszertifikat erhalten (obwohl ich denke, dass Wildcard-EV-Zertifikate wahrscheinlich nicht zulässig sind), das einen grünen Balken ergibt. Dies würde in den meisten Browsern ein "Besitz" -Label geben. Danach können die Benutzeroberflächen des Browsers selbst verwirrend sein (z. B. die von Firefox "ausgeführt von (unbekannt)" in der blauen Leiste, was in keiner Weise wirklich hilft). Letztendlich können die Benutzer in Ihrem Zertifikat überprüfen, an welche SANs das Zertifikat ausgestellt wurde. Ich bezweifle jedoch, dass viele dies tun und verstehen werden, was es bedeutet.

34
Bruno

http://www.digicert.com/welcome/wildcard-plus.htm sagt

Darüber hinaus sind DigiCert WildCard-SSL-Zertifikate einzigartig, da Sie JEDE Subdomain Ihrer Domain sichern können, einschließlich mehrerer Ebenen von Subdomains mit einem Zertifikat. Beispielsweise könnte Ihre WildCard für * .digicert.com com server1.sub.mail.digicert.com als alternativen Betreffnamen enthalten.

4
TechNikh

Sie können entweder ein Platzhalterzertifikat verwenden oder ein Zertifikat mit alternativen Domänennamen verwenden. Persönlich verwende ich ein Zertifikat von StartSSL, mit dem ich alle meine Domänen auf einem einzigen Zertifikat auflisten kann. Ich habe ungefähr 10 Platzhalterdomänen und 15 andere ADNs, die sich alle auf demselben Zertifikat befinden, damit ich SSL auf allen Websites verwenden kann, die ich auf meinem Server gehostet habe.

1
AJ Henderson