Force_sid durch reverse proxy und ssl/https

Mein Shop läuft bei einem provider hinter einem reverse proxy, der sich um SSL kümmert. Die eigentliche Anfrage kommt dann unverschlüsselt per HTTP ohne HTTPS. Der Shop muss aber von der URL her alles per HTTPS ausliefern, damit alle Links stimmen. In dieser Konstellation wird dadurch an jeden Link das force_sid gehängt, obwohl dies nicht nötig wäre. Alle cookies werden korrekt gesetzt und sind vorhanden.

Ich habe auch schon probiert die isSsl() funktion zu überschreiben, leider hat dies keine Auswirkung. Meine Config Werte sShopURL und sSSLShopURL beinhalten beide die https-URL. Hat jemand vielleicht eine Idee, wie ich das Problem lösen kann. Andere PHP Projekte haben oft eine Option für ein derartiges Setup hinter einem reverse proxy, oxid scheinbar nicht?

habe das problem down-getracked. das problem ist einerseits die isSsl() Überprüfung und andererseits die Überprüfung ob der Host der selbe ist.

$_SERVER[‘HTTP_HOST’] = “domain.com:443

durch den Port schläg der Vergleich daher immer fehl.

[B]Lösung:[/B]

oxconfig:

protected function _checkSsl() {
....
$this->setIsSsl(true);
}

oxutilsserver.php:

public function getServerVar($sServVar = null) {
...
 if ($sServVar === 'HTTP_HOST' && $sValue) {
                $pos = strpos($sValue,':');
                if ($pos) {
                        $sValue = substr($sValue,0,strpos($sValue,':'));
                }
        }
        return $sValue;
}

wir nutzen nginx als reverse proxy und ssl offloader.

folgender eintrag in der location hat bei uns gereicht:

proxy_set_header X-Forwarded-server ssl;

hier greift dann der workaround für profihost kunden im oxid core

        //additional special handling for profihost customers
        if ( isset( $aServerVars['HTTP_X_FORWARDED_SERVER'] ) &&
             ( strpos( $aServerVars['HTTP_X_FORWARDED_SERVER'], 'ssl' ) !== false ||
             strpos( $aServerVars['HTTP_X_FORWARDED_SERVER'], 'secure-online-shopping.de' ) !== false ) ) {
             $this->setIsSsl( true );
        }