Zugang über https funktioniert nicht

  • Hi

    Ich betreibe ein Blog (WordPress in der Version 2.0.10) auf meinem Rechner zu Hause.
    Über das Internet kann ich zugreifen und alle Funktionen aufrufen.

    Ich hatte vor einiger Zeit versucht, auf die Version 2.5.1 umzusteigen.
    Die Admin-Seiten waren aus dem Internet erreichbar, nicht aber die Normalseiten.

    Die neuste Version 2.6 zeigt das gleiche Verhalten.

    Der Zugang zu meinem Blog vom Internet aus ist etwas komplizierter, als es sich die Entwickler von WordPress wohl vorgestellt haben. Ich verwende einen Apache2-Server, der nur über https angesprochen werden kann.
    Der Aufruf sieht wie folgt aus:
    https://xxx.homeip.net/yyy/wordpress/

    Der Apache-Server leitet den Request an eine Maschine in meinem Netz weiter mit der Direktive
    ProxyPass /yyy/ http://192.168.100.250/yyy/
    Der Request kommt in der Zielmaschine an und wird bearbeitet.
    [size=8](Diese Technik verwende ich für unterschiedliche Benutzer und Tools wie SVN, MediaWiki und auch WordPress in der alten Version.)[/SIZE]

    Das Problem entsteht dadurch, dass irgendwo in der Verarbeitungsfolge ab /yyy/wordpress/index.php aus der ursprünglichen URL https://... ein http://... wird.

    In der Datenbank sind in der Tabelle wp_options 4 Einträge in der Spalte options_value,
    die die Zeichenfolge https://xxx.homeip.net/yyy/wordpress/ enthalten.
    Darunter sind auch 'siteurl' und 'home'.

    Irgendwo im PHP-Kode wird für einzelne Komponenten einer Seite die URL neu zusammengesetzt und dabei das falsche Protokoll verwendet.

    Ich habe im Kode viele Stellen gefunden, die auf 'home' und 'siteurl' referenzieren.
    Leider habe ich nicht die Stelle finden können, die das Problem verursacht.

    Wie gesagt, die Version 2.0.10 verhält sich, so wie ich es wünsche.

    Kann mir jemand helfen?

    Gruß
    Bernd

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Hm, ich bin mir nicht sicher, ob Du das so zum Laufen kriegen wirst. Ein mit WP 2.2, glaube ich, eingeführtes Feature nennt sich "Canonical URL" und sorgt dafür, dass WP nur mit der in den Optionen eingetragenen URL aufgerufen werden kann. Mit dieser URL werden dann natürlich auch alle Adressen auf der Seite gebaut, die Links zu den Beiträgen, Kategorien etc. Alle anderen Aufrufe werden darauf umgeleitet.

    Bei Dir steht nun die https-Adresse drin. Ich bin mir nicht sicher, ob beim Proxy-Pass intern ein neuer Request mit der neuen Adresse erstellt wird. In dem Fall solltest Du mal probieren, in den Optionen die http-Adresse einzutragen. So oder so, schaue mal nach, welche Weiterleitungen WP ausführt, z.B. mit dem "LiveHTTPHeaders"-AddOn im Firefox. Da sollte sich schon herausfinden lassen, was genau passiert.

  • Hi Ammaletu

    Ich habe bei den Add-Ons ein Tool gefunden, dass sich als 'Header Monitor' meldet.
    Es zeigt jedoch, egal mit welcher Einstellung, keine Infos zu einem Aufruf (auch bei anderen Seiten nicht). Habe ich das falsche Add-on erwischt?

    Im WordPress habe ich unter den allgemeinen Einstellungen zwei Optionen, die WordPress-
    Adresse (URL)
    und Blog-Addresse (URL) heißen. In beiden Fällen habe ich https://xxx.homeip.net/yyy/wordpress/ stehen. Diese Optionen gibt es schon in der Version 2.0.10. Gibt es noch eine Stelle? Hattest Du eine andere Option gemeint?

    Gruß
    Bernd

  • Hier mal ein Ausschnitt aus meinem SSL Reverse Proxy:

    Evtl. kannst du auch noch die Regel zum Umschreiben der URL aktivieren. Warum du den lokalen Server per HTTPS definierst, verstehe ich nicht. Der lokale Server mit WP sollte über HTTP Protokoll lokal gehen und erst der Proxy macht hin- und rückzu HTTPS Umverpackung draus.

  • Meine Apache2-Konfiguration auf dem Rechner zum Internet sieht so aus (https
    über Port 443):

    Auf der Maschine in der DMZ (192.168.100.250) steht in der Apache2-
    Konfiguration für die ersten zwei Verweise je eine Alias/Directory-Directive.
    Für den dritten Verweis habe ich eine Location-Directive verwendet.

    Das Wiki und SVN funktionieren sehr gut und auch WordPress in der alten Version.

    Ich habe mal die Vorschläge von von 'codestyling' probiert. Die Blöcke

    Code
    # Diese Regeln sorgen für das Parsen und Umschreiben der URL’s in HTML Seiten
        SetOutputFilter proxy-html
        ProxyHTMLURLMap https://xxx.homeip.net/ http://192.168.100.250/
        ProxyHTMLExtended On

    und

    Code
    # WICHTIG! Deaktiviert die gzip-Kompression - ohne funktioniert das URL Rewriting nicht
        RequestHeader unset Accept-Encoding

    funktionieren nicht - sie führen zu Fehlermeldungen beim (re)start des Apache-
    Servers. Wahrscheinlich muss ich dazu noch Module laden.

    Die Zeilen

    Code
    SSLProxyEngine On

    und

    Code
    ProxyPass /yyy/ http://192.168.100.250/yyy/
        ProxyPassReverse /yyy/ http://192.168.100.250/yyy/

    haben alleine aber nicht zum Erfolg geführt.


    Es folgt noch ein 'Mitschnitt' Vom Tool, das Ammaletu empfohlen hat.

    Interessant ist die 6. Zeile von unten. Hier wird der Fehler dokumentiert.

    Gruß
    Bernd

    Einmal editiert, zuletzt von Bernd aus No (31. Juli 2008 um 23:30)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!