2016-06-23 7 views
0

Wir haben mehrere Server und einen Load-Balancer. Wenn ein Server zum ersten Mal konfiguriert wird, wird ein selbstsigniertes Zertifikat erstellt. Der Server registriert dann seine feste IP beim Load Balancer.Wie kann ich Zertifikate von einer CA automatisch installieren?

Wenn unsere eigene Android App auf den Server zugreifen möchte, teilt der Load Balancer die IP mit. Da wir unserem eigenen Zertifikat vertrauen können, indem Sie es in SSLContext installieren, kann die Android-App mit dem Server über SSL kommunizieren.

Problem: Wir möchten das System so erweitern, dass beliebige Browser auf unsere Server zugreifen können, aber diese werden unserem selbstsignierten Zertifikat nicht trauen und den Benutzern eine hässliche Nachricht zeigen.

Ergo, wir müssen ein Zertifikat von einer vertrauenswürdigen CA verwenden. Aber hier haben wir das Problem, dass der Load Balancer IPs verwendet, keine Domäne (kann geändert werden). Wenn wir ein domänenbasiertes Zertifikat verwenden möchten, müssten wir das Zertifikat auf jedem Server manuell installieren und/oder wir müssten DNS für die Domäne konfigurieren.

How are ssl certificates verified? erklärt die Schritte während der Authentifizierung, aber was ich nicht klar sehe ist, wie weiß der Browser, dass die IP-Kontakte zu einer bestimmten Domäne gehört? Schaut es sich den umgekehrten Eintrag an? Kann ich dieses System irgendwie austricksen, um die manuelle Installation und/oder DNS-Konfiguration zu umgehen? Außerdem dachte ich, dass sogar ein Domain-Zertifikat normalerweise an eine IP vergeben wird, also müsste ich es für jeden Server neu ausgeben. Kann jemand die Punkte verbinden? Was wäre der beste Weg, um Server wie bisher automatisch zu konfigurieren, aber mit Zertifikaten von einer Zertifizierungsstelle anstelle von selbstsignierten Zertifikaten? Kennt jemand eine CA mit API, die ich verwenden könnte?

Antwort

0

der Browser weiß, dass die IP-Kontakte zu einer bestimmten Domäne gehört?

es nicht. Der allgemeine Mechanismus zur Namensvalidierung lautet: Der Name im Zertifikat muss mit dem Namen in der Adressleiste übereinstimmen.

Wenn der Client eine Verbindung mit dem Remote-Server über den Namen herstellt, muss das Zertifikat in der Antwort diesen Namen im Feld Betreff oder Alternative Zertifikatsnebenbezeichnung des Betreffs enthalten.

Wenn der Client eine Verbindung zum Remote-Server über IP herstellt, muss das Zertifikat in der Antwort entweder die IP-Adresse im Feld Betreff oder die Alternative Alternative Betreff-Namen enthalten.

Das Problem mit IP besteht darin, dass kommerzielle (öffentlich vertrauenswürdige) Zertifizierungsstellen Ihnen keine Zertifikate für IP-Adressen ausstellen. Nur für qualifizierte Domainnamen.

+0

Dies macht die Dinge viel klarer. Also würde ich möglicherweise ein Wildcard-Zertifikat benötigen und dann für jeden unserer ips eine Subdomain zu DNS hinzufügen. –