Wie erhalten Sie ein SNI-Zertifikat für interne Hostnamen?

1145
Dai

Ich habe einen Synology NAS zu Hause, der über eine webbasierte Benutzeroberfläche verfügt, die ich dem öffentlichen Internet zugänglich mache. In meinem LAN hat mein NAS den Hostnamen nas.domain.local.und im öffentlichen Internet den Domänennamen home.notarealdomainname.com., der auf meinen Heimrouter verweist (der dann Port 7000 an den HTTPS-Server meines NAS auf Port 443 weiterleitet).

Mein NAS verfügt über ein selbst signiertes Zertifikat, das für einen bestimmten Zweck nicht wirklich fit ist, ich möchte eine SNI - Zertifikat installieren, die sowohl die Host - Namen unterstützt nas.domain.local.zusätzlich zu home.notarealdomainname.com.- aber alle von der großen CAs irgendeine Form von Domain-Validierung durchführen (wie sie sollten!), aber sie können meinen .local.Domänennamen nicht überprüfen, sodass sie dieses Zertifikat nicht ausstellen würden.

Ich möchte kein eigenes Zertifikat ausstellen, da Browser aus Gründen der Zweckmäßigkeit dem Zertifikat vertrauen möchten.

1
Wenn Sie keine Antwort auf Ihre Frage haben, können Sie, wenn Sie über einen Router verfügen, der [NAT Loopback] (http://en.wikipedia.org/wiki/Network_address_translation#NAT_loopback) unterstützt, die lokalen Domänennamen einfach vergessen und immer die öffentlichen verwenden mit einem gültigen Zertifikat. heavyd vor 9 Jahren 0

3 Antworten auf die Frage

5
Steffen Ullrich

Öffentliche Zertifizierungsstellen stellen nur Zertifikate für öffentliche Domänen aus. Es gab eine Zeit, in der sie dies taten, dieses Verhalten jedoch aufgegeben haben, da dies Probleme mit neu eingeführten Domänen der obersten Ebene verursachte. Außerdem stellt die Zertifizierungsstelle nur Zertifikate für Domänen aus, die nur einer Partei gehören und von diesen genutzt werden. Dies gilt nicht für interne Namen.

Das bedeutet: Entweder akzeptieren Sie das selbstsignierte Zertifikat einmal auf allen internen Geräten oder Sie müssen Ihre eigene private PKI-Struktur erstellen und die entsprechende Root-CA auf allen Geräten importieren.

0
glibdud

Ich gehe davon aus, dass das allgemeine Problem, das Sie lösen möchten, die Aktivierung robuster HTTPS für das Gerät für interne und externe Clients ist, und es ist Ihnen eigentlich egal, ob es zwei verschiedene Namen hat. Wenn dies wahr ist, haben Sie möglicherweise eine andere Option. Wenn Sie die Kontrolle über den DNS-Server für Ihr internes Netzwerk haben, können Sie home.notarealdomainname.comdie interne IP-Adresse für interne Clients auflösen . Dann benötigen Sie nur ein Zertifikat für den öffentlichen Namen, und Sie können diesen Namen verwenden, um sowohl intern als auch extern darauf zuzugreifen. So mache ich das in BIND auf Ubuntu Server 14.04:

/etc/bind/rc.conf.local:

...  zone "home.notarealdomainname.com" in { type master; file "/var/lib/bind/db.home.notarealdomainname.com" }  ... 

/var/lib/bind/db.home.notarealdomainname.com:

$ORIGIN . $TTL 86400 home.notarealdomainname.com IN SOA dnsserver.domain.local. myemail.emaildomain.com. ( 1 ; serial 86400 ; refresh (1 day) 3600 ; retry (1 hour) 172800 ; expire (2 days) 3600 ; minimum (1 hour) ) NS dnsserver.domain.local. $ORIGIN home.notarealdomainname.com. @ A 192.168.1.123 

Im Grunde sagt es Ihrem lokalen DNS-Server (hier wird vorausgesetzt dnsserver.domain.local), dass es die Autorität für die home.notarealdomainname.comZone ist (aber nicht notarealdomainname.com, damit es nicht mit anderen Hosts in dieser Domäne interferiert) und dass die lokale IP des NAS (hier angenommen) zurückgegeben wird 192.168.1.123) dafür.

0
jww

Ich möchte ein SNI-Zertifikat installieren

Es gibt kein SNI-Zertifikat. Das ist eine TLS-Erweiterung und bedeutet, dass der Servername in gesendet wird ClientHello.


Zertifikat, das die Hostnamen nas.domain.local unterstützt. zusätzlich zu home.notarealdomainname.com.

Die Zertifizierungsstellen geben dieses Zertifikat wahrscheinlich wegen nicht aus nas.domain.local.

Es ist mir jedoch nicht klar, wo die Ausgabe unter den Baseline-Anforderungsdokumenten von CA / Browser (CA / B) verboten ist (CAs und Browser tun, was sie in den CA / B-Foren vereinbaren), sie folgen nichts von der IETF oder dem RFCs).

Aus diesem Grund home.notarealdomainname.comgenügen Sie Abschnitt 11.1.1, Autorisierung durch Domänennamenregistrierer. Abschnitt 11.3 verbietet *.local, aber das liegt am Platzhalter (und nicht am lokalen Namen).

Da ich nicht herausfinden kann, wo die Zertifizierungsstellen das Zertifikat nicht ausstellen dürfen, sollten Sie die Zertifizierungsstellen nach der Ausstellung eines Zertifikats fragen, das einen lokalen Namen enthält (zusätzlich zum öffentlichen Namen, den Sie kontrollieren).


Ich möchte kein eigenes Zertifikat ausstellen, da Browser aus Gründen der Zweckmäßigkeit dem Zertifikat vertrauen möchten.

Sie sollten die folgenden Schritte ausführen (auch wenn Sie dies nicht unbedingt tun möchten):

  1. Erstellen Sie Ihre eigene Zertifizierungsstelle
  2. Erstellen Sie eine CSR mit allen Namen, die der Server haben soll
  3. ein auf CSR basierendes Zertifikat ausstellen
  4. unterschreiben Sie das Zertifikat mit Ihrer Zertifizierungsstelle
  5. Installieren Sie Ihre Zertifizierungsstelle auf Ihren Geräten und Computern

Der einzige Unterschied zwischen der vertrauenswürdigen Liste der Zertifizierungsstellen in Browsern und Zertifikatspeichern und Ihrer Zertifizierungsstelle besteht darin, dass Sie die Zertifizierungsstelle manuell installieren müssen.

Wenn Sie OpenSSL verwenden müssen, um eine CSR mit mehreren Subject Alt-Namen (wie nas.domain.localund home.notarealdomainname.com) zu erstellen, sehen Sie sich diese Frage zum Stack Overflow an: Das Zertifikat mit erweitertem Schlüssel funktioniert nur in Firefox . Siehe insbesondere die OpenSSL-Konfigurationsdatei .


Schließlich ist dies ein bekanntes Problem mit dem Internet der Dinge; und es fehlt derzeit eine Lösung. Sie wurde kürzlich in die Mailingliste für Web App Security aufgenommen. Siehe Vorschlag: HTTP als nicht sicher markieren :

Ich möchte Berücksichtigung einer vierten Kategorie vorzuschlagen: Personal
Devices (Heim - Router, Drucker, IoT, Himbeere pis im Klassenzimmer,
Kühlschränke):
- kann nicht von Natur in DNS und CA - Systemen teilnehmen
- wahrscheinlich auf einem privaten Netzwerk blockieren
- Benutzer ist der Besitzer des Dienstes und kann sich daher eher auf CA verlassen