ubuntuusers.de

Apache: symlinks, SSL und open_basedir

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

aguafuertes

Anmeldungsdatum:
11. April 2005

Beiträge: 509

Wohnort: Bonn

Hi zusammen,

der Titel klingt nach Kraut und Rüben, aber genauer konnte ich es leider nicht zusammenfassen. Ist auch erstmal eine Verständnisfrage...

Szenario

Auf einem (mit Plesk administrierten) Apache existieren mehrere vhosts mit verschiedenen Domains. Für eine dieser Domains gibt es ein SSL-Zertifikat. Nun möchte man aber auch die Inhalte der anderen vhosts per https über dieses Zertifikat verschlüsselt aufrufen können, z.B. zur Vorschau vor einem Launch.

Der Gedanke

Im httpdoc-Verzeichnis des vhosts/der Domain mit SSL-Zertifikat einfach Symlinks auf die Verzeichnisse der anderen vhosts setzen, so dass diese Inhalte alle unter http://domain-mit-ssl.de/andere-vhosts/inhalte.html erreichbar sind.

Was passiert

Nach dem Setzen eines Symlinks auf das Verzeichnis eines anderen vhosts kommt eine 403-Forbidden Meldung. Nach dem Setzen von FollowSymLinks in der httpd.include des vhosts mit SSL-Zertifikat ist das aber behoben.

Nun erscheint allerdings die Fehlermeldung Warning: Unknown: open_basedir restriction in effect. Google sagt, dass es sich um eine PHP-Einstellung handelt. Nach etwas suchen in der httpd.include alle Einträge auskommentiert, die open_basedir betreffen.

Nun erscheinen die Inhalte des Verzeichnisses, auf den der Symlink verweist (also des anderen vhosts). Allerdings warnt der Firefox, dass es sich um ein nicht verifiziertes Zertifikat handelt - die ganze Aktion ist also umsonst.

Die Frage

Ist die Idee, "Inhalte verschiedener vhosts auch über einen anderen vhost mit SSL-Zertifikat verfügbar machen", überhaupt realisierbar? Ich dachte eigentlich, dass der Server so konfigurierbar sein müsste, dass alle serverseitigen Vorgänge "versteckt" werden können und für den Webbenutzer nicht sichtbar sind. Das es also egal ist, wo die Inhalte liegen, die unter speziellen URLs angezeigt werden, solange der Server und insbesondere die vhosts entsprechend eingerichtet werden.

Lasse mich da aber auch gerne eines besseren belehren - bin gespannt auf eure Antworten.

Viele Grüße Gregor

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

Nun erscheinen die Inhalte des Verzeichnisses, auf den der Symlink verweist (also des anderen vhosts). Allerdings warnt der Firefox, dass es sich um ein nicht verifiziertes Zertifikat handelt - die ganze Aktion ist also umsonst.

Das dürfte allerdings unabhängig davon sein, in welchem Verzeichnis deine Inhalte liegen, da dein Zertifikat ja selbst signiert hast, nehme ich an.

Ist die Idee, "Inhalte verschiedener vhosts auch über einen anderen vhost mit SSL-Zertifikat verfügbar machen", überhaupt realisierbar?

Ja, und Symlinks oder serverseitige Aliase sind dafür das Mittel der Wahl.

aguafuertes

(Themenstarter)

Anmeldungsdatum:
11. April 2005

Beiträge: 509

Wohnort: Bonn

da dein Zertifikat ja selbst signiert hast, nehme ich an

nein, es handelt sich um ein "offizielles" Zertifikat - Inhalte, die im vhost der zertifizierten Domain liegen, zeigt der Firefox ohne Warnung.

Ja, und Symlinks oder serverseitige Aliase sind dafür das Mittel der Wahl

Das ist doch schon was ☺ Hast du vielleicht ein paar Anhaltspunkte, wo man noch nach Fehlern suchen könnte?

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

aguafuertes schrieb:

da dein Zertifikat ja selbst signiert hast, nehme ich an

nein, es handelt sich um ein "offizielles" Zertifikat - Inhalte, die im vhost der zertifizierten Domain liegen, zeigt der Firefox ohne Warnung.

Wie genau lautet denn die Warnung?

Ja, und Symlinks oder serverseitige Aliase sind dafür das Mittel der Wahl

Das ist doch schon was ☺ Hast du vielleicht ein paar Anhaltspunkte, wo man noch nach Fehlern suchen könnte?

Hast du evtl. irgendwo Weiterleitungen eingerichtet, so dass sich der angefragte Host ändert?

aguafuertes

(Themenstarter)

Anmeldungsdatum:
11. April 2005

Beiträge: 509

Wohnort: Bonn

Wie genau lautet denn die Warnung?

Firefox3 unter Linux meldet folgendes:

Dem Zertifikat wird nicht vertraut, weil es selbst unterschrieben wurde. Das Zertifikat gilt nur für <a id="cert_domain_link" title="plesk">(null)</a>. (Fehlercode: sec_error_untrusted_issuer)

Wenn ich diese Meldung zweimal ignoriere, sehe ich aber die Inhalte unter der domain-mit-ssl.de/symbolischer-link-zu-inhalten/ - allerdings scheint hier irgendwas mit den Pfaden nicht zu stimmen, da dass CSS jetzt nicht richtig eingebunden wird. Interessanterweise meldet der Firefox jetzt keinen Fehler mehr am Zertifikat.

IE7 meldet

Das Anzeigen von Inhalten mit Zertifikatfehlern von dieser Webseite wurde aus Sicherheitsgründen geblockt.

Ich kann aber auch hier "Gelockte Inhalte zulassen", dann erscheinen auch hier die Inhalte unter domain-mit-ssl.de/symbolischer-link-zu-inhalten/ - hier sogar ganz korrekt, CSS wird richtig geladen. Auch hier wird jetzt kein Zertifikatfehler mehr gemeldet.

Firefox2 unter Windows meldet zuerst ein unbekanntest Zertifikat (interessanterweise mit "Plesk" als Besitzer) - wenn ich dann dieses Zertifikat temporär akzeptieren, erscheint ein Warnfenster:

Sie haben versucht, eine Verbindung mit domain-ohne-ssl.de aufzubauen. Allerdings gehört das vorgezeigte Sicherheitszertifikat "Plesk".... Wenn Sie vermuten, das dass angezeigte Sicherheitszertifikat nich domain-ohne-ssl.de, brechen Sie bitte die Verbindung ab.

Wenn ich trotzdem weitermache, erscheinen die Inhalte auch hier unter domain-mit-ssl.de/symbolischer-link-zu-inhalten - auch korrekt mit CSS. Und auch jetzt wird das Zertifikat als korrekt angezeigt.

Zusammenfassend

Am Ende lande ich bei allen drei Browsern unter der gewünschten URL domain-mit-ssl.de/symbolischer-link-zu-inhalten - unter Firefox auf Linux wird aber das CSS nicht richtig eingebunden.

In allen drei Fällen ist dieser Übergang aber nicht "rund" - bei IE7 und Firefox auf Windows taucht immer die domain-ohne-ssl bei den Warnungen auf, bei allen drei Browsern wird das Zertifikat zwischenzeitlich "Plesk" zugeordnet.

Was ich gemacht habe:

  • serverseitig symbolischen Link im vhost domain-mit-ssl.de angelegt und auf den vhost domain-ohne-ssl.de verwiesen

  • in der httpd.include config-Datei des vhosts domain-mit-ssl.dedie Option FollowSymLinks hinzugefügt

  • in dieser Datei ebenfalls die open_basedir-Einträge auskommentiert, da sonst keine Inhalte angezeigt wurden, Fehlermeldung sieht so aus:

Warning: Unknown: open_basedir restriction in effect. File(/var/www/vhosts/domain-mit-ssl.de/symbolischer-link-zu-inhalten) is not within the allowed path(s): (/var/www/vhosts/domain-mit-ssl.de/httpsdocs:/tmp) in Unknown on line 0

Würde die Warnungen gerne noch wegbekommen und natürlich unter Linux auch die CSS-Pfade richten.

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

aguafuertes schrieb:

Firefox3 unter Linux meldet folgendes:

Dem Zertifikat wird nicht vertraut, weil es selbst unterschrieben wurde. Das Zertifikat gilt nur für <a id="cert_domain_link" title="plesk">(null)</a>. (Fehlercode: sec_error_untrusted_issuer)

Das sagt eigentlich, dass du ein selbst signiertes Zertifikat nutzt, dass außerdem für eine andere Dmain ausgestellt ist. Bist du sicher, dass du bei der Zertifikatserstellung und Einbindung alles richtig gemacht hast?

Wenn ich diese Meldung zweimal ignoriere, sehe ich aber die Inhalte unter der domain-mit-ssl.de/symbolischer-link-zu-inhalten/ - allerdings scheint hier irgendwas mit den Pfaden nicht zu stimmen, da dass CSS jetzt nicht richtig eingebunden wird.

Zeig mal die Logdateien des Apache für entsprechende Aufrufe.

Antworten |