Umstellung auf SSL älterer Version

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
Conny
Beiträge: 4
Registriert: Fr 16. Nov 2018, 15:05
Kontaktdaten:

Umstellung auf SSL älterer Version

Beitrag von Conny » Fr 16. Nov 2018, 15:24

Hallo zusammen,

zuerst einmal tut es mir leid, dass ich im falschen Forum schreibe, aber in dem 4.8-Forum kann ich leider nichts posten.
Ich hoffe dennoch, dass mir trotzdem jemand weiterhelfen kann.

Und zwar geht es darum eine Seite die Contenido 4.8.18 nutzt auf HTTPS umzustellen. Wenn man die Seite direkt mit HTTPS aufruft, dann funktioniert sie ganz normal und man bleibt auch bei HTTPS. Was jedoch fehlt ist ein automatischer Sprung auf HTTPS wenn nur HTTP oder nichts in der URL angegeben ist.

Ich habe probiert einfach die .htaccess zu bearbeiten und habe

Code: Alles auswählen

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
hinzugefügt. Das führt jedoch dazu, dass wenn man die Seite aufrufen will eine 500-Fehlerseite aufgerufen wird.

Mein zweiter Ansatz war in der Datei "v1/.ezmeta/environment.ini" den Wert für "webroot" auf https zu ändern. Sobald man das macht läuft die Seite bei einem Aufruf in eine Endlosschleife und bricht irgendwann mit einem Umleitungsfehler ab.

Wenn ich im Backend den Link unter Adminsitration -> Mandanten -> Mandant auswählen (ist nur einer) den Wert für "Web-Adresse" auf https ändere, dann zeigt es mir zwar an, dass es erfolgreich gewesen wäre, aber wenn ich die Seite aktualisiere dann ist da immer wieder automatisch der alte Wert eingetragen.
Parallel habe ich auch versucht den Wert direkt in der Datenbank zu ändern, aber das wird auch immer wieder automatisch zurückgesetzt.

Auf der Contenido-Webseite in den FAQ steht, dass man auch die Konfigurationsdatei „config.php“ (Ordner: „data/config“) anpassen müsste, aber solch einen Ordner habe ich nicht und eine Datei mit dem Namen in der ich einen Wert gefunden hätte den ich sinnvoll anpassen könnte habe ich leider auch nicht gefunden.

Das Problem für mich ist, dass ich mich nicht mit Contenido selbst auskenne und das System auch nicht aufgesetzt habe. Aber es muss doch irgendwie gehen, dass die automatische Umleitung klappt....

xmurrix
Beiträge: 2680
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Umstellung auf SSL älterer Version

Beitrag von xmurrix » Fr 16. Nov 2018, 15:44

Hallo Conny,

willkommen im CONTENIDO Forum.

Es kann sein, dass man im 4.8'er Forum nichts mehr posten kann, da diese Version schon lange nicht mehr weiterentwickelt wird.

Zu deinem Problem:
Die Regeln in der .htaccess sind soweit in Ordnung, setze aber noch folgende Zeile ein, am besten vorher:

Code: Alles auswählen

RewriteEngine on
Die sorgt dafür, dass die angegebenen Regeln verarbeitet werden.
...Wenn ich im Backend den Link unter Adminsitration -> Mandanten -> Mandant auswählen (ist nur einer) den Wert für "Web-Adresse" auf https ändere, dann zeigt es mir zwar an, dass es erfolgreich gewesen wäre, aber wenn ich die Seite aktualisiere dann ist da immer wieder automatisch der alte Wert eingetragen...
Nach einer solchen Änderung solltest du auch die Code-Tabelle in der Datenbank leeren (nicht löschen, sondern leeren!). Das geht auch irgendwo über die Administration oder direkt an der Datenbank, z. B. über phpMyAdmin.
...Auf der Contenido-Webseite in den FAQ steht, dass man auch die Konfigurationsdatei „config.php“ (Ordner: „data/config“) anpassen müsste, aber solch einen Ordner habe ich nicht und eine Datei mit dem Namen in der ich einen Wert gefunden hätte den ich sinnvoll anpassen könnte habe ich leider auch nicht gefunden...
Die CONTENIDO-FAQ bezieht sich auf die Version 4.9, du verwendest die 4.8 und in der sind die Konfigurationsdateien unter "contenido/includes". Die URL zum CMS Backend ist in der "contenido/includes/config.php" angegeben, den solltest du auch auf https umstellen.

Vermutlich wäre es einfacher gewesen, das Setup aufzurufen, den Modus für Serverumzug zu starten und dort die jeweiligen Änderungen anzugeben.

Gruß
xmurrix

Oldperl
Beiträge: 3991
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Franken, Bayern
Kontaktdaten:

Re: Umstellung auf SSL älterer Version

Beitrag von Oldperl » Mo 19. Nov 2018, 17:54

Servus,
Conny hat geschrieben:
Fr 16. Nov 2018, 15:24
Wenn man die Seite direkt mit HTTPS aufruft, dann funktioniert sie ganz normal und man bleibt auch bei HTTPS. Was jedoch fehlt ist ein automatischer Sprung auf HTTPS wenn nur HTTP oder nichts in der URL angegeben ist.
Diese automatische Weiterleitung geht entweder über die .htaccess oder direkt in der Konfiguration des Webservers.
Conny hat geschrieben:
Fr 16. Nov 2018, 15:24
Ich habe probiert einfach die .htaccess zu bearbeiten und habe

Code: Alles auswählen

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
hinzugefügt. Das führt jedoch dazu, dass wenn man die Seite aufrufen will eine 500-Fehlerseite aufgerufen wird.
Deutet darauf hin, dass entweder beim Eintrag in die .htaccess ein Fehler vorliegt, oder die entsprechende Funktionalität in der .htaccess , weil als Änderungen durch diese Datei gesperrt, nicht möglich ist.
Conny hat geschrieben:
Fr 16. Nov 2018, 15:24
Wenn ich im Backend den Link unter Adminsitration -> Mandanten -> Mandant auswählen (ist nur einer) den Wert für "Web-Adresse" auf https ändere, dann zeigt es mir zwar an, dass es erfolgreich gewesen wäre, aber wenn ich die Seite aktualisiere dann ist da immer wieder automatisch der alte Wert eingetragen.
Parallel habe ich auch versucht den Wert direkt in der Datenbank zu ändern, aber das wird auch immer wieder automatisch zurückgesetzt.
Wird das in der DB wieder zurückgesetzt? Denn dies kann eigentlich nicht geschehen wenn die DB direkt im Admin-Tool des Providers, zumeist phpMyAdmin, geändert wird. Hier nochmals nach der Änderung kontrollieren, ob es auch geändert ist, ansonsten kann es sein, dass, eventuell durch Änderungen der Serversoftware, das Admin-Tool nicht mehr richtig funktioniert (oft falsche PHP- oder MySQL-Version)
Ändert man über das Contenido-Backend kommt es auch dabei auf die eingesetzte Serversoftware an. Wurde bereits auf PHP > 7 umgestellt, oder auf MySQL 5.7, so ist Contenido 4.8 dazu nicht mehr kompatibel und es können entsprechende Probleme auftreten.
Wird die Änderung im Backend beim Mandanten richtig angezeigt (nach Neuaufruf der Seite) und nur im Frontend nicht, dann liegt es zumeist daran, dass vergessen wurde die Tabelle con_code und das cache-Verzeichnis im Mandanten-Verzeichnis zu leeren. Zusätzlich sollte man noch die Session-Tabelle leeren.
Conny hat geschrieben:
Fr 16. Nov 2018, 15:24
Auf der Contenido-Webseite in den FAQ steht, dass man auch die Konfigurationsdatei „config.php“ (Ordner: „data/config“) anpassen müsste...
Wie von xmurrix bereits gesagt ist die FAQ dort nur für 4.9.x und höher. Die alte 4.8er FAQ wurde offiziell eingedampft. Du kannst dafür aber gerne in die ConLite-FAQ schauen, die noch fast alle Infos zur 4.8er Version beinhaltet.
Conny hat geschrieben:
Fr 16. Nov 2018, 15:24
Das Problem für mich ist, dass ich mich nicht mit Contenido selbst auskenne und das System auch nicht aufgesetzt habe. Aber es muss doch irgendwie gehen, dass die automatische Umleitung klappt....
Wie gesagt hat die automatische Weiterleitung auf HTTPS nicht direkt mit Contenido, sondern mit den Einstellungen des Servers/Webspace zu tun.

Gruß aus Franken

Ortwin
*NEU* PHP 7.x Community Draft von CONTENIDO 4.9 auf github
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das neue Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Conny
Beiträge: 4
Registriert: Fr 16. Nov 2018, 15:05
Kontaktdaten:

Re: Umstellung auf SSL älterer Version

Beitrag von Conny » Mi 21. Nov 2018, 09:25

Hallo (:

Vielen Dank erst einmal für die Antworten!

----

EDIT: Okay, ich habe es hinbekommen, ich war anscheinend in der falschen .htaccess-Datei unterwegs! Wenn ich es in der anderen Datei ändere funktioniert die Weiterleitung. Nur funktioniert das Legen von Artikeln in den Warenkorb dann nicht mehr, ich muss also mal suchen was da das problem ist... *seuftz*

EDIT2: Es fehlen CSS und JS-Dateien die zusätzlich geladen werden sollen. Was ich nicht verstehe ist, warum er nicht einmal versucht diese zu laden. Normalerweise werden die dann in der Entwicklerkonsole mit angezeigt, aber sie fehlen komplett in der Auflistung.

EDIT3: Also was ich ändern muss ist der htmlpath in der con_clients-Tabelle, damit die Pfade für die Skripte und Style-Dateien richtig generiert werden. Ändere ich das einfach in der Datenbank, logge mich im Backend aus und wieder ein, ist es wieder zurück geändert in der Datenbank selbst. Ich habe ein bisschen Respekt davor die Code-Tabelle zu leeren. Kann ich das ohne Bedenken machen?
Jetzt habe ich versucht es nur in der Datenbank zu ändern und habe mich nicht neu in das Backend eingeloggt. Dann habe ich versucht den Cache zu leeren über das Backend, aber die Links oben fürs Javaskript und das CSS sind nicht geändert worden.

----
Die Regeln in der .htaccess sind soweit in Ordnung, setze aber noch folgende Zeile ein, am besten vorher:
RewriteEngine on
Das ist in der Datei enthalten, ich habe wie gesagt nur die genannten Zeilen hinzugefügt und an den vorhandenen Zeilen nichts geändert. Die komplette .htaccess mit der ich es versucht habe ist:

Code: Alles auswählen

RewriteBase /
RewriteEngine on

RewriteRule ^robots.txt$ robots.txt [NC,QSA,L]

RewriteRule ^$ v1/cms/front_content.php [NC,QSA,L]
RewriteRule ^(.*)$ v1/$1 [NC,QSA,L]

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Nach einer solchen Änderung solltest du auch die Code-Tabelle in der Datenbank leeren (nicht löschen, sondern leeren!). Das geht auch irgendwo über die Administration oder direkt an der Datenbank, z. B. über phpMyAdmin.
Ich gehe mal davon aus, dass das der Punkt "Tabelle con_code leeren" im Backend ist, richtig? Sollte man dann auch "Code-Generierung in der Tabelle con_code" mit auswählen?
Vermutlich wäre es einfacher gewesen, das Setup aufzurufen, den Modus für Serverumzug zu starten und dort die jeweiligen Änderungen anzugeben.
Ich wusste gar nicht, dass es solch eine Möglichkeit gibt. Das werde ich probieren, wenn es anders nicht geht. Soweit ich Ortwin verstanden habe muss das mit der automatischen Weiterleitung ohne Änderungen an Contenido gehen.
Wird das in der DB wieder zurückgesetzt?
Ja, das wird direkt in der DB zurückgesetzt. Die Änderung ist auch da, aber sobald ich das Backend aufrufe ist sie wieder weg. Nach eueren Antworten hätte ich jetzt vermutet, dass es an der Code-Tabelle liegt.
Wie von xmurrix bereits gesagt ist die FAQ dort nur für 4.9.x und höher. Die alte 4.8er FAQ wurde offiziell eingedampft. Du kannst dafür aber gerne in die ConLite-FAQ schauen, die noch fast alle Infos zur 4.8er Version beinhaltet.
Danke für den Link. Ist das Handbuch selbst für die alte Version noch irgendwo online? Ich habe gerade nur ein Redakteur-Handbuch gefunden und würde gerne mehr über das Setup und diese Code-Tabelle nachlesen. Ich kenne mich eben gar nicht mit Contenido aus und würde das gerne ändern (:

xmurrix
Beiträge: 2680
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Umstellung auf SSL älterer Version

Beitrag von xmurrix » Mi 21. Nov 2018, 14:51

Hallo Conny,
...Es fehlen CSS und JS-Dateien die zusätzlich geladen werden sollen. Was ich nicht verstehe ist, warum er nicht einmal versucht diese zu laden. Normalerweise werden die dann in der Entwicklerkonsole mit angezeigt, aber sie fehlen komplett in der Auflistung...
Die Pfade zu den CSS und JS-Dateien werden in der Regel im Layout definiert. Es kann auch sein, dass Module die HTML-Tags dafür ausgeben. Ich würde prüfen, wo die Ausgabe der HTML-Tags CSS und JS-Dateien ist und warum diese nicht geladen werden. Manche Designer/Entwickler schreiben die URLs zu solchen Dateien fest im Layout oder in der Modulausgabe, dann kann eine Änderung auch nichts bringen, da nicht der Wert aus der Datenbank verwendet wird. Bitte alle möglichen Stellen prüfen.
...EDIT3: Also was ich ändern muss ist der htmlpath in der con_clients-Tabelle, damit die Pfade für die Skripte und Style-Dateien richtig generiert werden. Ändere ich das einfach in der Datenbank, logge mich im Backend aus und wieder ein, ist es wieder zurück geändert in der Datenbank selbst. Ich habe ein bisschen Respekt davor die Code-Tabelle zu leeren. Kann ich das ohne Bedenken machen?
Jetzt habe ich versucht es nur in der Datenbank zu ändern und habe mich nicht neu in das Backend eingeloggt. Dann habe ich versucht den Cache zu leeren über das Backend, aber die Links oben fürs Javaskript und das CSS sind nicht geändert worden...
Das Ändern der htmlpath in der con_clients-Tabelle ist richtig, aber manche Daten (z. B. htmlpath) werden in der Session des Besuchers der Seite gespeichert. Damit die Session mit den neuen Werten befüllt werden kann, sollte man sich nicht nur im Backend ausloggen, sondern auch die Cookies im Browser löschen. Das CMS erstellt jeweils eine Session für das Backend und eine für das Frontend. Loggt man sich im Backend aus, ist die Session dafür weg, nicht aber die vom Frontend. Daher kann es sein, dass man im Frontend manche Änderungen nicht gleich sieht. Also, am besten immer Cookies löschen. Die Code-Tabelle kann man getrost leeren, denn die wird erneut befüllt, spätestens wenn man die entsprechende Seite im Frontend aufruft.
...Ich gehe mal davon aus, dass das der Punkt "Tabelle con_code leeren" im Backend ist, richtig? Sollte man dann auch "Code-Generierung in der Tabelle con_code" mit auswählen?...
Ja, mit dem Punkt "Tabelle con_code leeren" wird die Code-Tabelle geleert, mit "Code-Generierung in der Tabelle con_code" sollten die Einträge darin dann auch wieder neu generiert werden.

Nachtrag:
...Ist das Handbuch selbst für die alte Version noch irgendwo online? Ich habe gerade nur ein Redakteur-Handbuch gefunden und würde gerne mehr über das Setup und diese Code-Tabelle nachlesen. Ich kenne mich eben gar nicht mit Contenido aus und würde das gerne ändern...
Hier gibt es eine Seite, auf der das Handbuch für Redakteure für Contenido 4.8 zum Download angeboten wird.
http://contenido.dawd.de/module/4.8.x/index.html
Das wird dir aber eher die Bedienung des CMS erklären, nicht in die technischen Details eingehen, wie das CMS unter der Haube genau funktioniert. Die Tabelle con_code enthält einfach den Code der Seite, der aus Layouts, Modulen und den Konfigurationen (Modulvariablen, CMS-Typen) zusammengestellt wird. Beim Besuch einer Seite wird der entsprechende Eintrag aus der Tabelle geholt und ausgeführt.

Gruß
xmurrix

Conny
Beiträge: 4
Registriert: Fr 16. Nov 2018, 15:05
Kontaktdaten:

Re: Umstellung auf SSL älterer Version

Beitrag von Conny » Do 22. Nov 2018, 08:27

Hallo xmurrix,

danke dir für die Infos (:

Was die CSS und JS-Dateien betrifft, so gibt es hier eine Erweiterung in dem "includes"-Ordner und da wird $cfgClient[$client]["path"]["htmlpath"] genutzt um die Pfade für die Dateien zu setzen. Anhand einer JS-Datei die mit http im Header im Quelltext steht habe ich das nachvollzogen, also bin ich mir recht sicher dass das etwas bringen sollte.

Also ich bekomme einfach keine Permanente Änderung vom htmlpath in der Datenbank hin, weil sich das immer wieder automatisch zurück ändert. Wenn ich im Backend den Wert ändere unter Mandanten->Mandant->Eigenschaften->Web-Adresse und dann nur auf den nächsten Reiter oben drücke, z.B. Artikelspezifikationen und wieder zurück gehe ist die Änderung wieder rückgängig gemacht.
Ich habe die Code-Tabelle geleert und auch direkt in der Datenbank nochmal geprüft dass sie auch leer ist.

Gerade habe ich festgestellt, dass wenn ich in der Datenbank den htmlpath ändere und dann im Frontend einen anderen Artikel aufrufe, den ich vorher noch nicht aufgerufen habe, dann wird der htmlpath in der Datenbank auch automatisch geändert.
Ich muss also mal suchen wo in dem Code jedes Mal diese Änderung durchgeführt wird. Ich frage mich ja schon ein bisschen, ob das eine gute Programmiertechnik ist. So wie ich es verstanden habe sollte das im Standard nicht passieren... Diese Sucherei nervt xD

-----

EDIT: Ich habe jetzt anhand des Codes eine Option gefunden die ich hier angeben kann und mit dieser werden bei den JS und CSS-Dateien die Pfade richtig gesetzt, wenn die Seite per HTTPS aufgerufen wurde, auch wenn ich den htmlpath nicht geändert habe.
Wenn ich die History im Firefox leere und die Seite dann das erste Mal aufrufe werden die Links für die Bilder jedoch mit http generiert und CSS und JS werden garnicht erst versucht zu laden (obwohl im Seiten-Quelltext für die Dateien jetzt https steht).
Wenn ich dann allerdings F5 drücke, wird alles richtig geladen. Leere ich dann wieder die History im Firefox und rufe die Seite erneut auf, dann passt es wieder beim ersten Versuch nicht.
Es muss also lokal irgendwas gesetzt werden, wodurch es beim zweiten Versuch die Links richtig generiert und beim ersten Versuch nicht, weil die Info nicht da ist. Fragt sich welche Info das ist und wie ich das erste Laden richtig hinbekommen kann.
Hat da spontan jemand eine Idee bzw. hatte dieses Phänomen bereits?

bodil
Beiträge: 109
Registriert: Fr 7. Okt 2011, 04:10
Kontaktdaten:

Re: Umstellung auf SSL älterer Version

Beitrag von bodil » Do 22. Nov 2018, 10:40

Hi Conny!
Sind die Css- und Js-Dateien denn unter einer anderen Domain zu finden als der Rest der Seite? Falls alles unter einer Domain liegt:
Sinnvollerweise arbeite man hier mit relativen Pfaden. Im base-Tag steht ein Pfad, auf den sich alle relativen Pfade beziehen. Üblicherweise steht da sowas wie

Code: Alles auswählen

<base href="https://www.myWebsite.com/cms/">
Die Adresse satmmt dabei aus den Mandanteneinstellungen.
Um dann eine css-Datei einzubinden reicht dann sowas

Code: Alles auswählen

<link href="css/style.css" rel="stylesheet">
Gibt es den base-Tag nicht (kann man wegkonfigurieren) dann kann man den Pfad relativ zur Domain angeben. Das sähe dann etwa so aus:

Code: Alles auswählen

<link href="/cms/css/style.css" rel="stylesheet">
(mit zusätzlichem /cms/).

xmurrix
Beiträge: 2680
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Umstellung auf SSL älterer Version

Beitrag von xmurrix » Do 22. Nov 2018, 10:48

Hallo Conny,

bis wir das Problem hier lösen, wird es wohl etwas dauern. Falls das Projekt irgendwo online erreichbar ist, kannst du mir gerne die Zugangsdaten (Backend u. FTP) per PM schicken und ich schaue mir das am Abend mal an.

Grüße
xmurrix

Conny
Beiträge: 4
Registriert: Fr 16. Nov 2018, 15:05
Kontaktdaten:

Re: Umstellung auf SSL älterer Version

Beitrag von Conny » Do 29. Nov 2018, 07:49

Hallo xmurrix,

leider kann ich dir da keine Zugangsdaten geben, aber vielen Dank für das Angebot!

Mittlerweile bin ich zu dem Entschluss gekommen dass es wesentlich einfacher wäre das ganze System komplett neu zu machen. Ich habe eine der Personen kontaktiert die sich mit den Anpassungen an dem System zumindest ein bisschen auskennen (der ursprüngliche Entwickler arbeitet schon seit 5 Jahren nicht mehr in dem Bereich) und selbst er meinte, dass das System einfach nicht dafür ausgelegt ist mit HTTPS zu funktionieren, da das 2010 als es programmiert wurde noch kein großes Thema war und dass das wahrscheinlich schwierig werden würde. Da ist es wirtschaftlicher es neu zu machen.

Oldperl
Beiträge: 3991
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Franken, Bayern
Kontaktdaten:

Re: Umstellung auf SSL älterer Version

Beitrag von Oldperl » Do 29. Nov 2018, 13:07

Servus,

die 4.8er Version ist eigentlich problemlos auf HTTPS umzustellen. Einzige Einschränkung im Core, man sollte sowohl Front- als auch Backend umstellen, eine gemischte Umstellung kann zu Problemen führen.
Desweiteren müssen Module und Plugins geprüft werden, ob diese eigene URL-Verarbeitungen haben, oder sogar hardcoded URLs enthalten, und entsprechend umgebaut werden.
Meine ConLite ist ja im Grundsatz auch noch eine 4.8 und läuft auf diversen Seiten inzwischen über HTTPS.

Die automatische Umleitung (Redirect) von HTTP auf HTTPS ist Serversache und auch dort entsprechend durchzuführen. Sie hat grundsätzlich nichts mit dem System zu tun, sollte aber gemacht werden, da 4.8 nicht im Mischbetrieb über beide Protokolle gefahren werden kann. Nach Umstellung sollte daher nur noch ein Zugriff über HTTPS erfolgen.

Gruß aus Franken

Ortwin
*NEU* PHP 7.x Community Draft von CONTENIDO 4.9 auf github
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das neue Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Antworten