BC 1.3.3 Probleme seit Umstellung auf SSL Verbindung

Hier können Tipps und Tricks rund um die Verwendung von BlackCat CMS gepostet werden. Später wird es hierfür einen speziellen Bereich auf unserer Homepage geben.
DG70
Beiträge: 127
Registriert: Fr 5. Dez 2014, 12:59

BC 1.3.3 Probleme seit Umstellung auf SSL Verbindung

Beitrag von DG70 » So 21. Mär 2021, 21:02

Hallo zusammen,

bin mir nicht sicher ob das Thema hier rein gehört ... aber ich brauche Hilfe.
Ich hatte eine BC 1.3.3 Installation auf einem nicht SSL verschlüsseltem Server (Strato).
Installation, Module und Templates war alles in Ordnung.
Dann habe ich die Seite auf SSL Verschlüsselung umgestellt und seither kämpfe ich mit zwei Problemen:

1. Installation Template - Upload und Auswahl funktioniert. Wenn das Template aktiv ist werden im Frontend die <head> Daten nicht geladen.
Der <head> Bereich ist komplett leer ...
2. Modul catGallery - beim upload neuer Bilder kann das Bild nicht vollständig geladen werden.
Fehler "Server responded with 500 code". Dann Abbruch

Auf einer Testseite (gleicher Hoster mit SSL) habe ich versucht BC 1.3.3 frisch zu installieren ... da geht schon der Installer auf die Bretter.

Vermutlich irgendein Sicherheits-Feature, habt Ihr ein Tip?

Danke schonmal im voraus.

Benutzeravatar
creativecat
Beiträge: 1067
Registriert: Mi 6. Feb 2013, 12:41
Kontaktdaten:

Re: BC 1.3.3 Probleme seit Umstellung auf SSL Verbindung

Beitrag von creativecat » So 21. Mär 2021, 21:26

Hm ... ich mag ja Strato nicht (mehr), aber das ist seltsam. Hast du irgendwelche Einträge in der .htaccess?
Sind im Template (zB in der headers.inc.php) irgendwelche festcodierten Links mit http:// ?

Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: BC 1.3.3 Probleme seit Umstellung auf SSL Verbindung

Beitrag von shadowcat » Mo 22. Mär 2021, 11:24

Findest Du was in den Logs? Den eigenen von BC und/oder denen des Providers, soweit Du Zugriff darauf hast.

Dass schon der Installer nicht funktioniert ist sehr eigenartig.
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

DG70
Beiträge: 127
Registriert: Fr 5. Dez 2014, 12:59

Re: BC 1.3.3 Probleme seit Umstellung auf SSL Verbindung

Beitrag von DG70 » Mo 22. Mär 2021, 12:45

kleines Update ...

Bei Strato kann man ein SSL Zertifikat einer Domain zuweisen und die SSL Verwendung serverseitig erzwingen.
Letzteres führt dazu das der Installer zickt und der Bild-Upload der catGallery nicht funktioniert.
Deaktiviert man diese Funktion im Strato Backend, dann geht es wie gewohnt. Grr das soll man ahnen ...

Allerdings funktioniert mein Template noch nicht, die header Daten werden nicht geladen.
Lokal auf meinem Rechner gab es die Probleme nicht ... :o

Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: BC 1.3.3 Probleme seit Umstellung auf SSL Verbindung

Beitrag von shadowcat » Mo 22. Mär 2021, 13:02

Eventuell kann das erste Problem dann auch dadurch gefixt werden, dass man in der config statt "//mydomain.com" vor das // doch wieder das Schema setzt, also "https : //mydomain.com". (Leerzeichen vor und hinter : nur damit das Forum den Link nicht als Link darstellt.) Denn *eigentlich* möchte man das Erzwingen von https durchaus so haben.

Also z.B. aus

Code: Alles auswählen

define('CAT_URL', '//localhost:8889');
wird dann

Code: Alles auswählen

define('CAT_URL', 'https://localhost:8889');
Zu dem zweiten Problem:
Wird in der headers.inc.php irgendwo was mit http(s) von extern geladen? Findest Du was in den Logs?

Zur Not müßtest Du mal den Debug-Level im Page-Helper einschalten, aber "fatale" Fehler müßten auch schon im "normalen" Log erscheinen.
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

DG70
Beiträge: 127
Registriert: Fr 5. Dez 2014, 12:59

Re: BC 1.3.3 Probleme seit Umstellung auf SSL Verbindung

Beitrag von DG70 » Di 23. Mär 2021, 12:51

shadowcat hat geschrieben:
Mo 22. Mär 2021, 13:02
Eventuell kann das erste Problem dann auch dadurch gefixt werden, dass man in der config statt "//mydomain.com" vor das // doch wieder das Schema setzt, also "https : //mydomain.com". (Leerzeichen vor und hinter : nur damit das Forum den Link nicht als Link darstellt.) Denn *eigentlich* möchte man das Erzwingen von https durchaus so haben.
Da brauche ich wohl ein wenig Nachhilfe ... welche config meinst du?
shadowcat hat geschrieben:
Mo 22. Mär 2021, 13:02
Zu dem zweiten Problem:
Wird in der headers.inc.php irgendwo was mit http(s) von extern geladen? Findest Du was in den Logs?

Zur Not müßtest Du mal den Debug-Level im Page-Helper einschalten, aber "fatale" Fehler müßten auch schon im "normalen" Log erscheinen.
Der <head> Bereich wird jetzt wieder geladen, in meiner headers.inc.php gab es einmal anstelle der einfachen Klammer ) eine geschwungene Klammer } . Das "Problem" saß also vor dem Rechner ... danke für den Tipp (die Erinnerung) in das Log zu schauen.

Leider werden nun die CSS Dateien die nicht im Template stehen nicht geladen. Folgender Fehler laut Browser Console:

Code: Alles auswählen

Access to font at 'https://beispiel.de/modules/lib_bootstrap_4/vendor/icons/font/fonts/bootstrap-icons.woff2?4601c71fb26c9277391ec80789bfde9c' from origin 'https://www.beispiel.de' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
bootstrap-icons.woff2:1 Failed to load resource: net::ERR_FAILED
So sieht meine headers.inc.php im Moment dazu aus (im Original sollte die bootstrap.css auch aus der lib_ geladen werden, dann kommt aber der gleiche Fehler wie jetzt noch bei der bootstrap-icons.css zu sehen ist):

Code: Alles auswählen

$mod_headers = array(
	'frontend' => array(
		'js'  => array(),
		'css' => array(
    			array('file' => 'templates/'.pathinfo(__DIR__,PATHINFO_BASENAME).'/css/default/bootstrap.css'),
			array('file' => 'modules/lib_bootstrap_4/vendor/icons/font/bootstrap-icons.css'),
			array('file' => 'templates/'.pathinfo(__DIR__,PATHINFO_BASENAME).'/css/default/frontend.css'),
		),
        'jquery' => array( 'core' => true, 'ui' => true ),
        'meta' => array(
           		array('name'=>'viewport','content'=>"width=device-width, initial-scale=1.0"),
			array('charset'=>(defined('DEFAULT_CHARSET') ? DEFAULT_CHARSET : "utf-8")),
            		array('http-equiv'=>'X-UA-Compatible','content'=>'IE=edge'),
		)
    ),
);
Fällt dir dazu noch etwas ein?

Benutzeravatar
creativecat
Beiträge: 1067
Registriert: Mi 6. Feb 2013, 12:41
Kontaktdaten:

Re: BC 1.3.3 Probleme seit Umstellung auf SSL Verbindung

Beitrag von creativecat » Di 23. Mär 2021, 13:06

Bianka meint die config.php direkt in deinem Installationsverzeichnis. Dort findest du den genannten Eintrag.

Das andere ist ein doofes Problem :-P
Ruf die Seite mal ohne www auf, dann sollte es klappen. Idealerweise solltest du immer mit der htaccess auf konsequent mit www oder eben ohne www umleiten.
Entweder wird aus https://beispiel.de immer https://www.beispiel.de oder umgekehrt.

Auf ohne www geht es zum Beispiel mit dem Eintrag:

Code: Alles auswählen

RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
in der .htaccess-Datei in deinem Installationsverzeichnis.

Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: BC 1.3.3 Probleme seit Umstellung auf SSL Verbindung

Beitrag von shadowcat » Di 23. Mär 2021, 14:42

Zusätzlich zu dem was Matthias oben schrieb kannst Du auch mal schauen, ob Du bei Strato irgendwo Einstellungen machen kannst. Man kann den 'Access-Control-Allow-Origin' Header nämlich auf Serverseite konfigurieren, geht aber nicht in einer .htaccess, glaube ich.

Es gibt auch noch eine Content-Security-Policy META Angabe, die Du mal testen könntest. Klappt aber nach meiner Kenntnis auch nur in Kombination mit den richtigen Servereinstellungen so richtig.

Richtig ausprobieren konnte ich das noch nicht, ich hatte nur mal für BC2 vorgesehen, dass automatisch die richtigen Header ausgegeben werden. Ich konnte aber nie verifizieren, ob das auch funktioniert.
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

DG70
Beiträge: 127
Registriert: Fr 5. Dez 2014, 12:59

Re: BC 1.3.3 Probleme seit Umstellung auf SSL Verbindung

Beitrag von DG70 » Di 23. Mär 2021, 19:19

shadowcat hat geschrieben:
Di 23. Mär 2021, 14:42
Zusätzlich zu dem was Matthias oben schrieb kannst Du auch mal schauen, ob Du bei Strato irgendwo Einstellungen machen kannst. Man kann den 'Access-Control-Allow-Origin' Header nämlich auf Serverseite konfigurieren, geht aber nicht in einer .htaccess, glaube ich.
Strato FAQ:
Über die Funktion HTTP Strict Transport Security (HSTS) erhalten die Besucher Ihrer Webseite die Information, dass die Seite über eine verschlüsselte Verbindung (HTTPS) erreichbar ist und dass diese Einstellung für längere Zeit im Browser zwischengespeichert werden soll. Das erspart den Besuchern zukünftig die URL der Webseite mit https:// einzugeben. Besonders hilfreich ist dies, wenn Besucher ein ungesichertes Netzwerk nutzen (z.B. ein öffentliches WLAN in einem Café), um die Seite aufzurufen.

HSTS per .htaccess
Die Voraussetzung für HSTS ist, dass Ihre Website über ein gültiges SSL-Zertifikat verfügt. Wir empfehlen zusätzlich die Funktion „SSL erzwingen“ zu aktivieren. Bitte stellen Sie auch sicher, dass keine Probleme beim Aufruf per „https“ auftreten.

Mit folgender Zeile können Sie HSTS in der .htaccess-Datei aktivieren:

Header set Strict-Transport-Security "max-age=16070400"

Über den Parameter «max-age» wird die Dauer in Sekunden angegeben, für die die HSTS-Regel im Browser zwischengespeichert werden soll.
Hab das mal so übernommen in meine .htaccess , gab leider keine "sichtbare" Veränderung.

Wenn ich die META Tags in die headers.inc.php einfüge, habe ich deutlich mehr Fehlermeldungen in der Browser Console:

Code: Alles auswählen

'meta' => array(
	array('http-equiv'=>'Content-Security-Policy','content'=>"default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'"),
	array('http-equiv'=>'X-Content-Security-Policy','content'=>"default-src 'self' script-src 'self'; style-src 'self'; img-src 'self'"),
	array('http-equiv'=>'X-WebKit-CSP','content'=>"default-src 'self' script-src 'self'; style-src 'self'; img-src 'self'"),
Allerdings habe ich noch nicht alle Optionen ausprobiert (für self geht auch https: oder die Domain).
Die META Tag werden auch nur genutzt wenn Serverseitig nichts vorhanden ist, ansonsten ist die Server Konfiguration vorrangig.
creativecat hat geschrieben:
Di 23. Mär 2021, 13:06
Idealerweise solltest du immer mit der htaccess auf konsequent mit www oder eben ohne www umleiten.
Entweder wird aus https://beispiel.de immer https://www.beispiel.de oder umgekehrt.

Auf ohne www geht es zum Beispiel mit dem Eintrag:

Code: Alles auswählen

RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
in der .htaccess-Datei in deinem Installationsverzeichnis.
Das hat es dann gebracht ... alle Meldungen in der Browser Console verschwunden.
Warum ? Keine Ahnung ... Trotzdem ein dickes DANKE !!

DG70
Beiträge: 127
Registriert: Fr 5. Dez 2014, 12:59

Re: BC 1.3.3 Probleme seit Umstellung auf SSL Verbindung

Beitrag von DG70 » Mi 31. Mär 2021, 08:34

Nochmal ein kleines Update meinerseits ...

Strato ist wohl echt kein einfacher Hoster, haben die mit PHP 7.x eine PHP Boost Funktion eingeführt die Standardmäßig erstmal aktiviert ist.
Die Funktion selbst ist wohl zweifelhaft, zwei andere CMS Systeme haben damit auch so ihre Probleme.
Also Strato PHP Einstellungen auf PHP 7.3 eingestellt, PHP Boost Funktion deaktiviert, BC Installation u. Datenbank gelöscht.
Danach alles NEU installiert (BC 1.3.3 inkl. Template) ohne Fehlermeldung. Webseite ist erstmal wieder erreichbar, allerdings mit Einschränkung (Manchmal erscheint ein Internal Server error 500).
Auch im Google Ranking ist die Seite quasi rausgeflogen, obwohl ich die Eintragungen im Backend alle gemacht habe.

Sagt das den Profis etwas? Ich weiß leider nicht mehr was ich noch tun kann ...

Antworten