fragen stichworte

Legen Sie den Standard-TLS-SNI-vhost für Apache 2.2 unter CentOS 6 fest

Ich habe einen CentOS 6-Server mit Apache (httpd-2.2.15-15.el6.centos.x86_64). Nun habe ich TLS SNI mit OpenSSL konfiguriert und das war ziemlich einfach.

Jetzt habe ich zwei TLS-vhosts auf derselben IP-Adresse, und ich möchte angeben, welcher der Standard sein soll. Der Client unterstützt kein TLS-SNI (ja, ich sehe Sie an, git/hg).

Wenn Sie sich die Apache-Dokumente ansehen, sollten Sie dazu mindestens zwei Möglichkeiten haben:

  • für den Standardhost (und *: 443 für alle anderen) festgelegt
  • Setzen Sie "SSLStrictSNIVHostCheck on" für die nicht standardmäßigen Hosts.

Leider funktioniert keine Methode für mich. Kann mir jemand erklären, wie ich das Ziel trotzdem erreichen kann und warum die beiden oben genannten Methoden nicht wie erwartet funktionieren?

antworten

1st aktiviert ist die Standardeinstellung, benennen Sie also die Konfigurationsdatei des Standard-Vhost in etwas wie 00-config_file_name um, sodass die erste geladen wird.

Da Sie (zu Recht) etwas dokumentiert haben möchten:

Aus Apache-Dokumenten: Eine ausführliche Diskussion des Übereinstimmens von virtuellen Hosts

Name-based vhost

If the entry corresponds to a name-based vhost the name list contains one or more vhost structures. This list contains the vhosts in the same order as the VirtualHost directives appear in the config file.

The first vhost on this list (the first vhost in the config file with the specified IP address) has the highest priority and catches any request to an unknown server name or a request without a Host: header field.

If the client provided a Host: header field the list is searched for a matching vhost and the first hit on a ServerName or ServerAlias is taken and the request is served from that vhost. A Host: header field can contain a port number, but Apache always matches against the real port to which the client sent the request.

Wenn Sie also nur eine Konfigurationsdatei für Ihre vhosts verwenden, müssen Sie sie in der Datei anordnen und wenn Sie mehrere getrennte Dateien (einschließlich ../sites-enabled-Verzeichnis, in dem die Apache2-Beispiel-Site definiert ist) angeben Sie müssen die Dateien in der Reihenfolge laden, in der Sie die Standard-Site zuerst definieren müssen, und sie werden entsprechend der alphabetischen Reihenfolge des Verzeichnisses geladen.

Immer dasselbe Apache-Dokument (der Link zu Beispielen folgt auf der Seite). Wenn Sie _default_ vhost verwenden, muss es vor anderen vhosts definiert werden. Genau das tun Sie, wenn Sie den vhost in der von Ihnen gewünschten Reihenfolge definieren Bei Verwendung von _default_ vhost reagiert der Hauptserver jedoch nicht mehr auf Anforderungen.