Frage

Was ist der beste Weg, eine URL über eine SSL-Verbindung mit Apache 2.2 transparent umzuschreiben?

Apache 2 unterstützt nicht nativ mehrere namensbasierte virtuelle Hosts für eine SSL-Verbindung und ich habe gehört, dass mod_rewrite dabei helfen kann.Ich würde gerne so etwas machen:

Ich habe den Server so eingerichtet, dass auf die Seiten zugegriffen werden kann

https://secure.example.com/dbadmin

aber das hätte ich gerne als https://dbadmin.example.com

Wie richte ich es so ein, dass die Rewrite-Regel dbadmin.example.com in secure.example.com/dbadmin umschreibt, ohne jedoch das Umschreiben in der Adressleiste des Clients anzuzeigen (d. h.Der Client sieht immer noch nur dbadmin.example.com), überall auf https?

War es hilfreich?

Lösung

Konfigurieren Sie einen einzelnen VirtualHost so, dass er sowohl secure.example.com als auch dbadmin.example.com bedient (was ihn zum einzigen *:443 VirtualHost macht, der dies erreicht).Sie können es dann verwenden mod_rewrite So passen Sie den URI für Anfragen an dbadmin.example.com an:

<VirtualHost *:443>
    ServerName secure.example.com
    ServerAlias dbadmin.example.com

    RewriteEngine on
    RewriteCond %{SERVER_NAME} dbadmin.example.com
    RewriteRule !/dbadmin(.*)$ /dbadmin$1
</VirtualHost>

Ihr SSL-Zertifikat muss sowohl für secure.example.com als auch für dbadmin.example.com gültig sein.Es kann sich um ein Wildcard-Zertifikat handeln, wie von Terry Lorber erwähnt, oder Sie können das verwenden subjectAltName Feld, um zusätzliche Hostnamen hinzuzufügen.

Wenn Sie Probleme haben, richten Sie es zunächst ein <VirtualHost *> und prüfen Sie, ob es ohne SSL funktioniert.Die SSL-Verbindung und das SSL-Zertifikat stellen eine separate Komplexitätsebene dar, die Sie einrichten können, nachdem die URI-Umschreibung funktioniert hat.

Andere Tipps

Ich glaube nicht, dass dies funktionieren wird, es sei denn, Ihr SSL-Zertifikat ist ein „Wildcard“- oder Multi-Site-Zertifikat.Das Umschreiben wird im Browser angezeigt und der Name in der Adressleiste muss für das Zertifikat gültig sein, sonst wird Ihren Benutzern ein Sicherheitsfehler angezeigt (den sie jederzeit akzeptieren und fortfahren können, aber das klingt nicht nach Ihren Wünschen ).

Mehr Hier.

Es gibt Apaches mod_rewrite, oder Sie könnten Apache so einrichten, dass es direkt ist https://dbadmin.example.com zu path/to/example.com/dbadmin auf dem Server

<VirtualHost *>
ServerName subdomain.domain.com
DocumentRoot /home/httpd/htdocs/subdomain/
</VirtualHost>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top