Shop auf SSL - mixed content, Bilder URL wird als http anstatt als https geladen.

Guten Tag,

Ich habe den Shop erst ohne SSL installiert und dann auf SSL umgestellt.

Auch in Grundeinstellungen ->Shopeinstellungen -> Shops -> SSL verwenden aktiviert. Auch Bestellvorgang wird fehlerfrei abgeschlossen.

 

Das Problem ist dass das „eigenes Logo“ und die „Artikelbilder“ als http anstatt als https geladen werden.

 

Die Bilder in Einkaufswelten, werden dagegen richtig als https geladen.

 

Beispiel mit Logo

 

Fehler:

Mixed Content: The page at ‘https://myshop.de/en’ was loaded over HTTPS, but requested an insecure image ‘http://myshop.de/media/image/f4/65/d1/logo.jpg’. This request has been blocked; the content must be served over HTTPS.

10Mixed Content: The page at ‘’ was loaded over HTTPS, but requested an insecure image ‘’. This content should also be served over HTTPS.

 

In den Seitenquellentext sieht man, dass der Logo-link (

) über (url controller=‘index’) richtig als https ausgegeben wird aber die Bilder selbst als HTTP:

 

_

myshop.de - Switch to homepage

 

Wen man das Gleiche aber mit dem DemoShop Logo macht, wird es über https geladen.

 

myshop.de - Switch to homepage

 

Folgendes hatte ich schon in Bezug auf Logo ausprobiert:

 

logo-container.tpl + undex.tpl aus (/themes/Frontend/Bare/frontend/index) in (/themes/Frontend/mytheme/frontend/index) kopiert und folgende Änderungen in „Logo-container.tpl“ ausprobiert.

Original

{block name=‘frontend_index_logo’}

       

           

               

                   

                   

                   

 

                    {

               

           

       

    {/block}

 

Änderungen

               

                   

                   

                   

 

                    {

               

Auch habe ich die URL in kürzerer Form probiert einzugeben “/media/image/f4/65/d1/logo.jpg“

Leider war der shop nach der Änderung nicht mehr erreichbar, wenn man die Original Dateien logo-container.tpl + undex.tpl in (/themes/Frontend/mytheme/frontend/index) lässt, wir der shop ganz normal geladen. Die geänderte Datei logo-container.tpl habe ich auch in die „Bare“ Theme geladen (/themes/Frontend/Bare/frontend/index) auch danach war der Shop nicht mehr erreichbar.

Das Problem mit den Artikelbildern habe ich noch nicht angefasst, da es wohl zusammenhängt.

Cache wurde nach jedem Schritt im Shop Backend und in zwei Browser geleert.

Hat Jemand eine Idee was ich noch prüfen kann? Danke im Voraus.

 _

https://forum.shopware.com/discussion/comment/220139/#Comment_220139

Wird wohl ein Proxy dazwischen sein?

Hallo Danke für die schnelle Antwort.

Die Konfiguration ist wie folgt.

 

XXX.XXX.XXX.XXX – im Original steht die richtige Server IP

 

Nginx – Varnish – Apache

 

---- nginx konfiguration

myshop.de

server {

    listen         443 ssl;

    server_name    myshop.de www.myshop.de;

    access_log     /var/log/nginx/domains/myshop.de.access_log;

    error_log      /var/log/nginx/domains/myshop.de.error_log;

 

    ssl_certificate /etc/letsencrypt/live/myshop.de/fullchain.pem;

    ssl_certificate_key /etc/letsencrypt/live/myshop.de/privkey.pem;

 

    location /

    {

        proxy_buffering on;

        proxy_pass http://XXX.XXX.XXX.XXX:6081;

        proxy_set_header X-Client-IP      $remote_addr;

        proxy_set_header Host             $host;

        proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;

        proxy_hide_header Upgrade;

        #include /etc/nginx/nginx-vhost-location.conf;

    }

 

    location @fallback

    {

        proxy_buffering on;

        proxy_pass http://XXX.XXX.XXX.XXX:6081;

        proxy_set_header X-Client-IP      $remote_addr;

        proxy_set_header Host             $host;

        proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;

        proxy_hide_header Upgrade;

        #include /etc/nginx/nginx-vhost-location.conf;

    }

 

    location ~* ^.+.(jpg|jpeg|gif|png|ico|svg|js|css|mp3|ogg|mpe?g|txt|mov|flv|wmv|swf|avi|zip|gz|bz2?|rar|pdf|doc|psd|ttf)$

    {

        expires 365d;

        root /var/www/html/myshop.de;

        error_page 404 = @fallback;

    }

}

 

------ varnish.params Auschnitt

 

Main configuration file. You probably want to change it.

VARNISH_VCL_CONF=/etc/varnish/default.vcl

 

VARNISH_LISTEN_ADDRESS=192.168.1.5

VARNISH_LISTEN_PORT=6081

 

Admin interface listen address and port

VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1

VARNISH_ADMIN_LISTEN_PORT=6082

 

User and group for the varnishd worker processes

VARNISH_USER=varnish

VARNISH_GROUP=varnish

 

— Apache httpd.conf

 

Listen 8080

 

myshop /var/www/html/myshop.de

PORT 8443 SSL CONFIG

*******************

   

        DocumentRoot /var/www/html/myshop.de

        ServerName myshop.de

        ServerAlias www.myshop.de

        ErrorLog “logs/domains/myshop.de.error_log”

        CustomLog “logs/domains/myshop.de.access_log” combined

       

            #Options +Includes +FollowSymLinks –Indexes

            AllowOverride All

            allow from all

       

 

        SSLEngine on

        SSLCertificateFile /etc/letsencrypt/live/myshop.de/cert.pem

        SSLCertificateKeyFile /etc/letsencrypt/live/myshop.de/privkey.pem

        SSLCertificateChainFile /etc/letsencrypt/live/myshop.de/chain.pem

   

 

PORT 80 REDIRECT CONFIG

***********************

 

    DocumentRoot “/var/www/html/myshop.de”

    ServerName myshop.de

    ServerAlias www.myshop.de

    ErrorLog “logs/domains/myshop.de.error_log”

    CustomLog “logs/domains/myshop.de.access_log” combined

   

        allow from all

        AllowOverride All

        Options +FollowSymLinks

        Require all granted

   

    #Redirect permanent / https://myshop.de/

In meinem verlinkten Beispiel steht ja alles was du machen kannst/prüfen kannst.

Der Varnish wird SSL terminieren und mit dem Appserver nicht per SSL sprechen. Entsprechend kommt bei SW ein HTTP:// request an und die Bilder werden dann auch per HTTP ausgeliefert. Wenn du dir meinen verlinkten Beitrag durchließt, steht da auch wie man das lösen kann.

1 „Gefällt mir“

Danke für den Link.

hinzufügen von 

$_SERVER[‚HTTP_X_FORWARDED_PROTO‘] = ‚https‘;

in config.php hat das Problem gelöst. 

Hallo zusammen, 

leider habe ich auch das Problem der fehlenden Bilder nach einer Umstellung auf SSL. Die Bilder werden mit http ausgeliefert. 

Ich habe mir nun die Anleitung von Moritz durchgelesen und diese Zeile in der config.php ergänzt:

$_SERVER[‚HTTP_X_FORWARDED_PROTO‘] = ‚https‘;

leider ohne Erfolg, die Bilder sind immer noch verschwunden. 

Gibt es noch eine andere Möglichkeit, das Problem zu lösen? 

Eine Neuinstallation von Shopware würde das Problem auch nicht lösen, oder doch? 

Vielen Dank und viele Grüße, 
Perkeo

Die Ergänzung für die config.php lautet richtig:

$_SERVER[‚HTTP_X_FORWARDED_PROTO‘] = ‚https‘,

als zusätzliche Zeile mit einfachen Anführungszeichen oben und Komma am Ende, wenn es innerhalb des return arrays eingebunden wird.
So hats bei mir einwandfrei funktioniert.