Ergebnis 1 bis 29 von 29

Thema: Hetzner erfordert SSL-Connection zum DB-Server

  1. #1
    Contao-Nutzer Avatar von JamesdK
    Registriert seit
    02.12.2009.
    Ort
    Leverkusen
    Beiträge
    162
    Partner-ID
    8753

    Standard Hetzner erfordert SSL-Connection zum DB-Server

    Hallo zusammen,
    ich laufe gerade in ein ganz komisches Problem beim Versuch Contao 4.9 auf einem vom Kunden bereitgestellten Server bei Hetzner zu installieren.
    Ic habe vom Kunden nur FTP und MySQL-Daten zur Verfügung gestellt bekommen, außerdem wurde ein PHPmyadmin installiert.

    Die Minimal-Installation der 4.9 mittels Contao-Manager läuft ohne Probleme durch, im Konsolenfenster des Managers kommen keinerlei Fehler.
    Sobald ich aber das Install-Tool aufrufe, bekomme ich andauernd ein ”Could not connect to database”. Die gleichen Zugangsdaten funktionieren aber mit PHPmyadmin.
    Die Fehlermeldungen im Log deuten auf falsche Zugangsdaten hin, aber wie gesagt, PHPmyadmin funktioniert damit und ich konnte einen SQL-Dump importieren.

    Dann ist mir aufgefallen, dass mir der Ordner /web/assets, der ja eigentlich ein Symlink zum Ordner /assets sein sollte, als normaler Ordner in Filezilla angezeigt wird und die Inhalte im Prinzip ein Duplikat des Ordners /assets sind. Meine Vermutung jetzt: der Server kommt irgendwie nicht mit den Symlinks klar und legt stattdessen Kopien an.

    Hat jemand eine Idee, wie ich dem Problem beikommen kann? An welcher Schraube muss ich, der Kunde oder der Hetzner-Support drehen?
    Und sollte der Contao-Manager mir so ein Problem nicht auch mitteilen?

    Bin dankbar für jeden Hinweis.

    Edit: Ergänzend möchte ich noch hinzufügen, dass ich die Installation mittlerweile schon 2x durchgeführt hatte und ich beim Löschen der ersten Installation Probleme mit einigen Ordnern hatte, die sich standhaft weigerten, per FTP gelöscht zu werden. Berechntigungen stimmten – soweit ich das per FTP einsehen konnte – umbenennen konnte ich die Ordner auch. Nur löschen nicht, es wurde immer gemeckert, dass die Ordner nicht leer wären.
    Erst über PHP-Skript mit folgendem Inhalt konnte ich löschen:
    PHP-Code:
    exec('rm ../vendor -R'); 
    Auch dieses Phänomen lässt mich an ein Problem mit den Symlinks glauben.
    Geändert von JamesdK (27.04.2020 um 18:33 Uhr) Grund: Titel passte nicht mehr zur Problemstellung

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Wie hast du festgestellt, dass das Kopien sein sollten, statt symlinks? Warst du per FTP oder SFTP Verbunden? Über FTP siehst du vermutlich nicht, ob ein Ordner ein Symlink ist oder nicht.

  3. #3
    Contao-Nutzer Avatar von JamesdK
    Registriert seit
    02.12.2009.
    Ort
    Leverkusen
    Beiträge
    162
    Partner-ID
    8753

    Standard

    Ich bin per FTP mit expliziten TLS verbunden.
    Wenn ich auf /web/assets doppelklicke, lande ich auf anderen Servern automatisch im Ordner /assets.
    Das habe ich jetzt einfach mal vorausgesetzt, dass das hier genauso ist.
    Und nochmal Edit: Filezilla zeigt mir für Symlinks sogar ein anderes Icon mit kleinem Pfeil.
    Geändert von JamesdK (25.04.2020 um 22:01 Uhr)

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Das wird wohl auf den FTP Server ankommen. Contao hat auf jeden Fall keine Funktionalität eingebaut, die eine Kopie von diesen Ordnern generieren würde. Du solltest dich ohnehin bevorzugt mit SSH/SFTP verbinden.

  5. #5
    Contao-Nutzer Avatar von JamesdK
    Registriert seit
    02.12.2009.
    Ort
    Leverkusen
    Beiträge
    162
    Partner-ID
    8753

    Standard

    Da bin ich bei dir. Ist aber hier nicht möglich.

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Wie auch immer, mit hoher Wahrscheinlichkeit sind das nach wie vor Symlinks . Du musst also nichts tun (außer vielleicht den Hoster wechseln, aus anderen Gründen).

  7. #7
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.078
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Um sicherzustellen, dass es Symlinks sind, kannst du ja mal eine zusätzliche Datei in /assets kopieren. Wenn die dann auch in web/assets angezeigt wird, wird es wohl ein Symlink sein. Ansonsten eher nicht.

  8. #8
    Contao-Nutzer
    Registriert seit
    05.12.2009.
    Beiträge
    26

    Standard

    Wenn die Fehlermeldung Probleme bei der Datenbankverbindung besagt, würde ich mich erst mal daran orientieren.

    Enthält das Passwort eventuell Sonderzeichen?

  9. #9
    Contao-Nutzer Avatar von JamesdK
    Registriert seit
    02.12.2009.
    Ort
    Leverkusen
    Beiträge
    162
    Partner-ID
    8753

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Um sicherzustellen, dass es Symlinks sind, kannst du ja mal eine zusätzliche Datei in /assets kopieren. Wenn die dann auch in web/assets angezeigt wird, wird es wohl ein Symlink sein. Ansonsten eher nicht.
    OK, simpler Test, aber die Datei ist auch in /web/assets/ zu finden. Also liegt es nicht an Symlinks. Interessant, wie grundverschieden FTP-Server Dateien oder Verzeichnisse anzeigen.

    Da muss ich wohl doch bei der DB ansetzen. Ich halte euch auf dem Laufenden.

  10. #10
    Contao-Nutzer Avatar von JamesdK
    Registriert seit
    02.12.2009.
    Ort
    Leverkusen
    Beiträge
    162
    Partner-ID
    8753

    Standard

    Zitat Zitat von Mynyx Beitrag anzeigen
    Wenn die Fehlermeldung Probleme bei der Datenbankverbindung besagt, würde ich mich erst mal daran orientieren.

    Enthält das Passwort eventuell Sonderzeichen?
    Nein, keinerlei Sonderzeichen. Nur Zahlen und Klein/Großbuchstaben. Und wie gesagt: PHPMyAdmin (auf dem gleichen Server wie Contao installiert) mit den Daten funktioniert einwandfrei.

    Das ist die Fehlermeldung aus dem Log:

    PHP-Code:
    [2020-04-26 20:44:58app.CRITICALAn exception occurred. {"exception":"[object] (Doctrine\\DBAL\\Exception\\ConnectionException(code: 0): An exception occurred in driver: SQLSTATE[HY000] [1045] Access denied for user 'xxxxxxx'@'xxx.xxx.xxx.xxx' (using password: YES) at /usr/www/users/path/to/website/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:93, Doctrine\\DBAL\\Driver\\PDOException(code: 1045): SQLSTATE[HY000] [1045] Access denied for user 'xxxxxxx'@'xxx.xxx.xxx.xxx' (using password: YES) at /usr/www/users/path/to/website/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:31, PDOException(code: 1045): SQLSTATE[HY000] [1045] Access denied for user 'xxxxxxx'@'xxx.xxx.xxx.xxx' (using password: YES) at /usr/www/users/path/to/website/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:27)"} [] 
    Der Kunde hat mir noch einen Connection String für PHP mitgegeben, in dem scheinbar noch ein Key übergeben werden muss. So etwas ist mir vollkommen neu. Wo sollte ich einen solchen Key noch eingeben bzw. in ein Config-File reinschreiben? Und wo wäre so etwas dokumentiert?
    PHP-Code:
    mysql -u name_user -keyphrase -h host.domain.de name_db —ssl 
    Habt ihr so etwas schon mal benötigt?

  11. #11
    Contao-Nutzer Avatar von JamesdK
    Registriert seit
    02.12.2009.
    Ort
    Leverkusen
    Beiträge
    162
    Partner-ID
    8753

    Standard

    OK, ich bin einen Schritt weiter. Ich benötige SSL für die Connection zur DB.
    Ich habe einfach mal ein eigenes PHP-Skript für die DB_Connection gebaut und es funktioniert:

    PHP-Code:
    mysqli_options ($dbMYSQLI_OPT_SSL_VERIFY_SERVER_CERTtrue);
    $db->ssl_set(NULLNULL'sqla.pem'NULLNULL);
    $link mysqli_real_connect ($db'HOST''USER''PASSWORD','DBNAME'3306NULLMYSQLI_CLIENT_SSL); 
    Die .pem-Datei habe ich einfach mit in den /web-Ordner gelegt.
    Darüber kann ich mir alle z. B. alle Tabellennamen ausspucken lassen.

    Die Frage ist: wo zur Hölle könnte ich das offizielle PEM-File von Hetzner Contao für den Connect mitgeben?
    Hetzner FAQ Article zum Thema

  12. #12
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  13. #13
    Contao-Nutzer Avatar von JamesdK
    Registriert seit
    02.12.2009.
    Ort
    Leverkusen
    Beiträge
    162
    Partner-ID
    8753

    Standard

    Nächster Schritt:

    Deaktivierung der SSL-Connection zur DB lässt die Installation im Install Tool zu. Danach lief alles wie gewünscht.

    ABER: da es ein externer DB-Server ist, würde doch jegliche Verbindung des Webservers mit dem DB-Server unverschlüsselt laufen, oder? Der Kunde besteht auf SSL.
    Ist dieser Anwendungsfall so abwegig?

    p.s. Contao selbst läuft natürlich auch auf SSL, es geht um die Connection zum externen DB-Server.

    - - - Aktualisiert - - -

    Zitat Zitat von fiedsch Beitrag anzeigen
    Schau ich mir an, danke.

  14. #14
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Alternativ könnte man es über SSH Tunneling machen. Aber dafür brauchst du auch die entsprechenden Voraussetzungen auf beiden Servern.

    Warum eigentlich dieses Konstrukt? Wenn der Datenbank Server nicht im selben Netzwerk liegt, wie der Web Server, könnte das eine sehr langsame Angelegenheit werden.

  15. #15
    Contao-Nutzer Avatar von JamesdK
    Registriert seit
    02.12.2009.
    Ort
    Leverkusen
    Beiträge
    162
    Partner-ID
    8753

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Warum eigentlich dieses Konstrukt? Wenn der Datenbank Server nicht im selben Netzwerk liegt, wie der Web Server, könnte das eine sehr langsame Angelegenheit werden.
    Der DB-Server ist auch bei Hetzner. Ich denke einfach, dass der Kunde selbst im Hetzner-Netzwerk keine unverschlüsselte Kommunikation der beiden Server haben möchte.
    Nochmal: ist das so ein abwegiger Wunsch?

    Kleiner Schwank am Rande:
    Interessanterweise hat ein ebenfalls auf einer anderen Subdomain installiertes Wordpress des Kunden mit den gleichen Voraussetzungen die DB-Connection gefressen, ohne dass etwas in Bezug auf SSL konfiguriert werden musste. Zumindest erzählt der Kunde das so – ich habe keinen Zugriff darauf. Ist Wordpress da einfach toleranter als Doctrine?

  16. #16
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Ich würde vermuten WordPress unterstützt solche fortgeschrittenen Anforderungen gar nicht von Haus aus

  17. #17
    Contao-Nutzer Avatar von JamesdK
    Registriert seit
    02.12.2009.
    Ort
    Leverkusen
    Beiträge
    162
    Partner-ID
    8753

    Standard

    Aber spielen wir das doch jetzt nochmal für andere Contao-User in der Zukunft durch:

    1. Contao ist auf einem Webserver installiert und es gibt einen separaten MySQL-Server, der nur per SSL konnektiert werden darf.
    2. Bei der initialen Installation von Contao läuft der Contao-Manager mit der Installation der Pakete durch.
    3. Das Install-Tool weigert sich aber, die Zugangsdaten anzunehmen, weil ich keine Möglichkeit habe, zu den üblichen Zugangsdaten irgendeine andere Art hinzuzufügen.
    4. Folglich wird auch kein Ordner /config/ und keine parameter.yml angelegt. Jetzt kommt der Punkt, an dem ich mir nicht sicher bin, ob man es nicht doch irgendwie hinbekommt: ich habe versucht den Ordner und die Datei manuell anzulegen. Das Install-Tool hat danach aber weiterhin mit einer leeren Eingabemaske nach Zugangsdaten gefragt.
    5. Selbst mit dem Wissen, dass ich einen zusätzlichen Parameter in der parameters.yml setzen muss, komme ich gar nicht erst an den Punkt, dies zu tun, da die Datei wie in 4 beschrieben nicht automatisch erzeugt wird und manuell hinzugefügt nicht akzeptiert wird.



    Keine Chance Contao zu installieren ... zumindest nicht mit dem Contao-Manager. Auf der CLI kenne ich mich nicht gut genug aus – und man braucht Zugriff dafür.

  18. #18
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Sicher hast du eine Chance Contao zu installieren. Du musst einfach dafür sorgen, dass die Datenbank Verbindung funktioniert. Wie du das erreichen könntest wurde ja weiter oben schon gepostet.

    Aber ja, ohne SSH Zugriff ist es natürlich schwieriger. Ich würde dir auch nie empfehlen so ein fortgeschrittenes Setup auf so einer unzureichenden Server Umgebung zu versuchen.

  19. #19
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.078
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ohne jetzt nochmal explizit nachgelesen zu haben gehe ich davon aus, dass nach der Änderung/Erstellung der parameters.yml der Anwendungscache (Symfony Cache) gelöscht werden muss, damit die Änderung überhaupt wirksam wird.
    @Spooky: Du machst mich neugierig, gibt es mit den Hetzner-Servern irgendwelche grundsätzliche Probleme?

  20. #20
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Nein, aber sowas ohne SSH Zugang betreiben zu wollen ist doch madness

  21. #21
    Contao-Nutzer Avatar von JamesdK
    Registriert seit
    02.12.2009.
    Ort
    Leverkusen
    Beiträge
    162
    Partner-ID
    8753

    Standard

    Mittlerweile glaube ich das auch.
    Wenn man aber eingangs nur Contao installieren möchte und vom Kunden die eigentlich üblichen Zugangsdaten zur Verfügung gestellt bekommt und auch sonst zu Hetzner/Contao keine größeren Probleme findet, dann geht man erstmal davon aus, dass das schon rund laufen wird. Das Setting ist ja nicht so unüblich.

  22. #22
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    MySQL Verbindung über SSL halte ich für unüblich oder zumindest speziell. Zumindest habe ich so etwas in meiner Laufbahn noch nie gemacht. Mit Contao 3 hättest du da zB sowieso keine Chance, denke ich.

  23. #23
    Contao-Nutzer Avatar von JamesdK
    Registriert seit
    02.12.2009.
    Ort
    Leverkusen
    Beiträge
    162
    Partner-ID
    8753

    Standard

    Gut, dass Contao 3 ja eh Geschichte ist.

    Für die, die es interessiert:

    Ich habe es jetzt so hinbekommen:
    1. Nachdem die Datei /config/parameters.yml einmal mit den Zugangsdaten angelegt war, habe ich in der Datei /config/config.yml Folgendes hinzugefügt:

    Code:
    doctrine:
        dbal:
            options:
                !php/const:PDO::MYSQL_ATTR_SSL_CA: '/absoluter/pfad/zu/Hetzner-Cert-Datei/sqla.pem'
    In dem Link von fiedsch ist die Syntax ganz gut beschrieben, danke dafür!

    In der Datei sqla.pem ist der im Hetzner-Wiki veröffentlichte Inhalt gespeichert:
    https://wiki.hetzner.de/index.php/KonsoleH:MySQL

    Die Datei habe ich in einem öffentlich nicht zugänglichen Ordner abgelegt, hier konkret der Ordner /config, in dem auch die Parameters.yml und config.yml liegen.
    Falls dieser Ordner keine gute Idee ist, mögen mich die Contao-Tiefenversteher gerne korrigieren.

    Jedenfalls: die Seite läuft und ist auch schnell

  24. #24
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    Auf das Anlegen der parameters.yml musst du nicht warten, den Eintrag in die config/config.yml kannst du auch zuvor machen.

  25. #25
    Contao-Nutzer Avatar von JamesdK
    Registriert seit
    02.12.2009.
    Ort
    Leverkusen
    Beiträge
    162
    Partner-ID
    8753

    Standard

    Ich muss das Thema leider nochmal hervorholen.
    Die Website ist jetzt über ein Jahr gut mit dem o.g. Setting mittels SSL-Verbindung zur DB gelaufen.

    Seit einigen Tagen stolpert Contao aber immer mal wieder über die verschlüsselte DB-Connection und wirft dann für einige Zeit einen 500er, bis sich die Seite wieder „erholt“ hat.
    Gehäufte Aussetzer hängen zeitlich grob mit dem Update auf Contao 4.9.15 zusammen, vereinzelte Aussetzer gab es aber auch schon vorher. Es muss also nicht unbedingt daran liegen.

    Im /var/log ist z. B. folgendes zu finden:
    Code:
    [2021-06-30 11:31:43] request.CRITICAL: Uncaught PHP Exception Doctrine\DBAL\Exception\ConnectionException: "An exception occurred in driver: SQLSTATE[HY000] [2002] Connection timed out" at /usr/www/users/pitchy/newwebsite/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php line 112 {"exception":"[object] (Doctrine\\DBAL\\Exception\\ConnectionException(code: 0): An exception occurred in driver: SQLSTATE[HY000] [2002] Connection timed out at /usr/www/users/pitchy/newwebsite/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:112, Doctrine\\DBAL\\Driver\\PDO\\Exception(code: 2002): SQLSTATE[HY000] [2002] Connection timed out at /usr/www/users/pitchy/newwebsite/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php:18, PDOException(code: 2002): SQLSTATE[HY000] [2002] Connection timed out at /usr/www/users/pitchy/newwebsite/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:39)"} []
    Und das dann in regelmäßigen Abständen von wenigen Sekunden bis ca. 2 Minuten. Das sind dann scheinbar jeweils die Zugriffe auf die Seite – heute zwischen 11:31 Uhr und 11:52 Uhr sind es 86 Einträge im Log.

    Kurios: Der DB-Server ist mit PHPmyAdmin während der Ausfallzeiten IMMER erreichbar.
    Der Server läuft mit PHP 7.4.20.

    Hat jemand eine Idee?

  26. #26
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.078
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich würde auf einen überlasteten Server (der mit der Datenbank) tippen, mag aber auch falsch liegen. Gibt es auch erfolgreiche Verbindungsversuche zum MySQL-Server oder werden die erfolgreich aufgerufenen Seiten vielleicht auch nur aus dem Cache ausgeliefert?

  27. #27
    Contao-Nutzer Avatar von JamesdK
    Registriert seit
    02.12.2009.
    Ort
    Leverkusen
    Beiträge
    162
    Partner-ID
    8753

    Standard

    Danke schon mal für die Idee.
    Die Website war nicht komplett 21 Minuten weg heute Mittag (11:31 Uhr bis 11:52 Uhr), sondern zwischendurch aufrufbar.
    Wir haben jetzt doch beim Kunden erwirkt, die SSL-Verschlüsselung zur DB testweise auszuschalten. Wir beobachten das jetzt mal ein paar Tage.
    Und ja, der DB-Server ist Shared, wird also auch von anderen Hetzner-Kunden genutzt. Es könnte also wirklich eine temporäre Spitze sein.

  28. #28
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.078
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ansonsten wäre vielleicht noch eine Idee, persistente DB-Verbindungen zu benutzen. Keine Ahnung wie gut das von Contao/Doctrine/DBAL unterstützt wird oder ob man da besser gleich die Finger weglässt. Ich könnte mir aber vorstellen, dass bei der SSL-Verschlüsselung der Aufbau einer Verbindung signifikant länger dauert und auch auf dem DB-Server mehr Last erzeugt. Warum sich allerdings jemand antut, für ein CMS auf dem eigenen Server einen externen(!) shared(!) MySQL-Server zu nutzen, das strapaziert meine Vorstellungskraft schon ganz ordentlich. Höchstens, dass vielleicht das Hosten der Website auf dem Server eine sehr nebensächliche Funktion dieses Servers und die Performance der Website weitestgehend egal ist. Nuja, der Kunde muss (sollte) es wissen.

  29. #29
    Contao-Nutzer
    Registriert seit
    05.11.2015.
    Beiträge
    46

    Standard

    %%%

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •