Wie kann ich verschiedene SSL-Zertifikate für vhosts auf Apache einrichten?

8

Ich habe einen Webserver, der verschiedene Domain-Namen bedient, aber nur eine IP-Adresse hat. Das funktioniert gut mit virtuellen Hosts in Apache. Jetzt möchte ich SSL-verschlüsselte Verbindungen für die Webseiten. Wie kann ich verschiedene SSL-Zertifikate für die verschiedenen vhosts einstellen?

Die Verwendung verschiedener IPs für die verschiedenen Hostnamen wäre eine Lösung - nicht sehr elegant, aber möglich. Aber ich möchte wissen, wie ich verschiedene SSL-Zertifikate für verschiedene Vhosts verwenden kann. Also suche ich nach einer Lösung mit nur einer IP-Adresse.

    
Mnementh 09.11.2008, 17:06
quelle

6 Antworten

8

UPDATE: 2013

Es scheint, dass SNI endlich anfängt zu greifen, da ältere Browser wegfallen. Hier sind die Dokumente für Apache SNI und hier ist ein Wikipedia-Artikel auf SNI , der ein Diagramm zu Browsern enthält, die es unterstützen. Kurz gesagt, alle gängigen Browser unterstützen es in unterstützten Versionen. Wenn die Unterstützung älterer Browser wichtig ist, müssen Sie dies möglicherweise berücksichtigen.

------ vorherige Antwort ------------

SSL-Hosts müssen an eine eindeutige IP-Adresse / Port-Kombination gebunden sein, daher können Sie kein virtuelles Hosting verwenden (oder zumindest kann es nur einen ssl-Host pro IP-Adresse haben). Dies liegt daran, dass https mit der Verschlüsselung beginnt, bevor der Host: Parameter in http gesendet wird, und somit kann er nicht bestimmen, welche Chiffre er aus dem Hostnamen verwenden soll - er hat nur die IP-Adresse.

Das wäre albern, einfach zu beheben, wenn HTTP einen TLS-Befehl hätte, damit er SSL starten kann, nachdem er nach dem Hostnamen gefragt hat, aber niemand hat mich gefragt.

Die endgültige Antwort finden Sie unter Ссылка

    
DGM 09.11.2008, 17:16
quelle
4

Nach Hinweisen in den Antworten und Kommentaren (besonders von Martin v. Löwis) habe ich gegoogelt und diese Website über RFC 2817 und RFC 3546 . RFC 3546 scheint eine gute Lösung zu sein.

    
Mnementh 09.11.2008 18:01
quelle
2

AFAIK es ist nicht möglich, verschiedene SSL-Zertifikate für namensbasierte virtuelle Hosts mit mod_ssl einzurichten. Sie können den ausführlichen Grund hier lesen. Eine Alternative wäre die Verwendung von IP-basierten virtuellen Hosts (was wahrscheinlich nicht möglich ist / keine sehr zufriedenstellende Lösung) - fügen Sie einfach verschiedene SSLCertificateFile-Anweisungen ein, oder Sie könnten versuchen diese -Methode mit mod_gnutls.

    
VolkA 09.11.2008 17:25
quelle
1

Sie benötigen für jeden vhost eine separate IP: Port-Kombination.

RFC 3546 ist noch nicht machbar. IE unterstützt nur, wenn es unter Vista läuft, und zuletzt habe ich überprüft, dass Safari es auch nicht verwaltet.

    
bobince 10.11.2008 00:31
quelle
1

Obwohl alles, was DGM erwähnt hat, wahr ist, gab es einige Versuche, die Anforderung nach einer eindeutigen IP-Adresse für jedes Zertifikat, einschließlich mod_gnutls, zu umgehen und TLS-Erweiterungen . Es gibt einige Nachteile, aber sie können für Sie akzeptabel sein.

    
Robert 10.11.2008 14:04
quelle
1

Endlich ist es möglich! Sie benötigen sowohl Server als auch Client zur Unterstützung der Server Name Indication (SNI)

Browser, die SNI unterstützen:

  • Mozilla Firefox 2.0 oder höher
  • Opera 8.0 oder höher (mit aktiviertem TLS 1.1)
  • Internet Explorer 7.0 oder höher (unter Vista, nicht XP)
  • Google Chrome
  • Safari 3.2.1 unter Mac OS X 10.5.6

Dieses Dokument zeigt hoe, um Ihren Server zu konfigurieren: SSL mit virtuellen Hosts mit SNI

    
Antonio 13.02.2013 14:25
quelle

Tags und Links