marcus: SSL,Virtualhost

Hallo zusammen,

ich habe einen Webserver, der lediglich 1 IP besitzt. Jetzt sind aber 2 Domains auf der Kiste eingetragen, die per Virtualhost im Apache aufgerufen werden. Soweit, so gut!

Jetzt sollen beide Domains via SSL verschlüsselt werden, was in der SSL.conf ja schnell realisiert ist... ABER: er nimmt jetzt immer nur das zuerst eingetragene SSL-File und sagt bei der zweiten Domain, dass er das SSL von der anderen Domain ausliefern würde :-(

Ich hab gelesen, dass der Apache 1.1 wohl pro IP jeweils nur ein SSL-Zertifikat binden konnte... zum Apache 2 habe ich diesbezüglich nichts gefunden. Hat jemand Ahnung oder eine Lösung, wie man das Problem beheben kann?

Danke, Gruß und schönes Wochenende
Marcus

  1. Moin!

    Jetzt sollen beide Domains via SSL verschlüsselt werden, was in der SSL.conf ja schnell realisiert ist... ABER: er nimmt jetzt immer nur das zuerst eingetragene SSL-File und sagt bei der zweiten Domain, dass er das SSL von der anderen Domain ausliefern würde :-(

    Ich hab gelesen, dass der Apache 1.1 wohl pro IP jeweils nur ein SSL-Zertifikat binden konnte... zum Apache 2 habe ich diesbezüglich nichts gefunden. Hat jemand Ahnung oder eine Lösung, wie man das Problem beheben kann?

    SSL funktioniert nur pro IP. Jede IP kann nur ein einziges Zertifikat haben, weil die Aushandlung der SSL-Parameter passieren muß, bevor HTTP gesprochen wird und dann erst der gewünschte VHost bekannt gegeben wird.

    Einzige Chance, mit einem einzigen Zertifikat mehrere VHosts zu betreiben, ist ein Wildcard-Zertifikat, mit der man den vordersten Namensteil des Servernamens variabel gestalten kann: *.selfhtml.org wird z.B. bei uns für diverse interne und öffentliche SSL-Webseiten benutzt.

    Wildcard-Zertifikate funktionieren aber nicht mit höheren Domainebenen, keine Zertifizierungsstelle wird dir ein Zertifikat für "*.de" ausstellen.

    Außerdem funktioniert so ein Wildcard-Zertifikat nicht für beliebig viele Ebenen, sondern (browserübergreifend betrachtet) nur für exakt EINE, dort wo der Stern ist.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Hallo Sven,

      das bestätigt ja meine Infos/Vermutung von heute Nacht :-(
      Na dann hängen wir halt noch ne IP an die Kiste, hilft ja nichts :-)

      Danke und Gruß
      Marcus

    2. Hallo Sven,

      SSL funktioniert nur pro IP. Jede IP kann nur ein einziges Zertifikat haben, weil die Aushandlung der SSL-Parameter passieren muß, bevor HTTP gesprochen wird und dann erst der gewünschte VHost bekannt gegeben wird.

      Jain. Es gibt inzwischen einen Standard namens "Server Name Identification" (SNI), der jedoch erst ab SEHR neuen Browser-Versionen unterstützt wird, weswegen das Verfahren nicht portabel einsetzbar ist. Zudem wird's von OpenSSL erst ab Version 0.9.9 unterstützt werden, die noch als Entwicklungsversion gekennzeichnet ist und mod_ssl (das SSL-Modul für den Apache, das OpenSSL verwendet) kann es auch noch nicht, selbst wenn man OpenSSL 0.9.9 oder 0.9.8 mit einem Backport des Features nutzt (es gibt aber Patches für mod_ssl). GnuTLS und das entsprechende mod_gnutls für den Apache können es, bei GnuTLS empfehlen die Entwickler ab selbst, das noch nicht produktiv einzusetzen.

      Siehe auch: </archiv/2006/10/t139440/#m906199>, https://sni.velox.ch/.

      Insofern: Im Moment noch nicht wirklich praktisch anwendbar (auch wenn's die neuesten Versionen aller Browser schon können), in ein paar Jahren dürfte sich das aber durchgesetzt haben.

      Viele Grüße,
      Christian