Autor |
Beitrag |
mats
Beiträge: 49
|
Verfasst: Mi 23.01.19 14:40
Hallo,
mein Programm nimmt Daten aus einer Maske und schickt sie als String via HTTP an ein PHP-Script auf dem Server. Dieses stellt die Verbindung zur Datenbank her (MariaDB) und die Datenbankklasse schickt die einzelnen Daten (alles Strings) an den DB-Server und der trägt die Daten in die Tabellen ein.
Dazu habe ich TIdHTTP benutzt. Zuerst nur Local (Win7, Apache, MariaDB und PHP). Funktioniert wirklich sehr zuverlässig.
Jetzt habe ich ich die PHP-Scripte und die Datenbank auf den InternetServer kopiert/portiert und ich erhalte beim Zugriff HTTP/1.1 500 internal server error. Wie gesagt: Local alles bestens schreiben und lesen der DB -> keine Probleme.
result := Server.Post('https://myDomain.de/ws/WebServiceBasic.php', ParamList);
Meine einzige Idee: es könnte am httpS liegen. Muß ich da vielleicht ein paar SSL Bibliotheken laden? Leider weiß ich da wenig bescheidt und nicht wie. Oder die Serverkonfiguration? Keinen blassen Schimmer ???
Kann Hilfe dringend brauchen.
Danke schon mal...
mats
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 23.01.19 17:04
Moin!
Indy braucht für SSL tatsächlich zusätzliche Bibliotheken, such mal nach Indy+SSL, da sollte es schon ausreichend Material geben.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 23.01.19 17:06
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
mats
Beiträge: 49
|
Verfasst: Mi 23.01.19 17:57
Hallo Frühlingsrolle,
hat leider nicht funktioniert. Die Fehlermeldungen (Fehler1.png, Fehler2.png im Anhang) sind gleich geblieben. Wobei Fehler2.png der Ausschnitt ist, wo der Fehler auftritt. Ich seh da leider nicht durch, aber vielleicht kannst Du/Ihr daraus den Fehler ableiten?
mats
Einloggen, um Attachments anzusehen!
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 23.01.19 18:44
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
jaenicke
Beiträge: 19285
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 23.01.19 19:29
Bei SSL Problemen sollte auch eine entsprechende Fehlermeldung kommen, das wird es nicht sein, nein. Was passiert denn, wenn du die URL im Browser aufrufst? Hast du im Skript eine Fehlerbehandlung drin für den Fall von fehlenden Parametern, Problemen mit der DB-Verbindung usw.?
Du kannst z.B. an den Anfang des Skripts eine Ausgabe setzen und den Rest des Skripts überspringen und dich dann schrittweise herantasten ab wann der interne Serverfehler kommt.
Die SSL Einrichtung wie von Frühlingsrolle beschrieben brauchst du aber natürlich so oder so.
|
|
mats
Beiträge: 49
|
Verfasst: Mi 23.01.19 20:52
Hallo,
ich denke auch das es am Server liegt.
Ich habe da ein Problem mit dem Zertifikat (1&1) gefunden. Ich habe folgende Schlüssel:
_.DOMAIN.de_private_key.key
-.DOMAIN.de_ssl_certificate_INTERMEDIATE.cer
DOMAIN.de_ssl_certificate.cer
Aber mir fehlen zwei Schlüssel:
Zertifikat (*.crt)
*CA-Zertifikat (*-ca.crt)
Ich hab nicht gefunden wie ich da ran komme. Vielleicht liegt es ja daran?
mats
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 23.01.19 21:15
Moin!
Nur aus den Dateinamen geraten: das erste ist der private Schlüssel für das letzte, die Mitte ist die Intermediate-CA, also: alles da.
Nicht auf die Dateinamen-Extension reinfallen, da kann sonstwas stehen. Überlicherweise (für SSL) sollten die Zertifikate/Schlüssel im PEM-Format (binary-base64) vorliegen.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
mats
Beiträge: 49
|
Verfasst: Mi 23.01.19 23:39
Hallo Leute,
ich weiß nicht ob alles da ist. Aber der Server nimmt die Zertifikatsdateien mit .cer nicht, der will .crt -> Server: Plesk Onyx v17.5.3_build1705170317.16 os_CentOS 6, CentOS 6.8 (Final).
noch Vorschläge?
mats
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 24.01.19 00:17
Moin!
Was an der Datei für ein Schildchen klebt, ist Wurst, solange der Inhalt passt: serverfault.com/ques...l-generated-key-file
Probier´s doch erstmal ohne SSL, dann ist zumindest der Thread hier pausiert, denn Indy wird sicherlich keinen Einfluss auf deine Server-Config haben.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
mats
Beiträge: 49
|
Verfasst: Do 24.01.19 14:51
Hallo zusammen,
habe das Zertifikat auf dem Server erneuert, alles Ok, aber immer noch 500. Doch eines gibt mir zu denken. Ich hatte auf dem Server das Verzeichnis mit den PHP-Dateien neu erstellt und vergessen die Dateien neu hochzuladen. Da kam ein 404 -> Ressource wurde nicht gefunden. Konnte das Programm ja auch nicht, Dateien vergessen. Also liest, oder versucht, das Programm die angeforderte Datei, sonst hätte es ja keinen 404 gegeben. Und als die PHP-Dateien auf dem Server waren wieder 500.
Versteh' ich nicht.
mats
|
|
Tankard
Beiträge: 217
Erhaltene Danke: 96
|
Verfasst: Do 24.01.19 15:29
Schau dir mal dir .htaccess Datei an.
Der Fehler 500 steht für Bad Gateway. Bedeutet der Server kann die PHP Datei zwar lesen, aber nicht an den PHP Interpreter weiterleiten.
Kannst du die Datei denn aus dem Browser aufrufen und ausführen?
PS: Ich kann dir auch einen Account zum Testen auf meinem Server geben. Darauf läuft NGINX und PHP 5.6 bis 7.2. MySQL ist auch vorhanden.
|
|
mats
Beiträge: 49
|
Verfasst: Do 24.01.19 18:03
Hallo Tankard,
mein OS ist CentOS 6.8. Ich kann die .htaccess nicht finden. Wo?
Eine kurze PHP-Datei mit print'Hallo'; im gleichen Verzeichnis wird im Browser ausgegeben.
mats
|
|
Tankard
Beiträge: 217
Erhaltene Danke: 96
|
Verfasst: Do 24.01.19 18:58
Hi,
hast du das Server selbst installiert? Da wir es schwierig dir zu helfen. Fehlerursachen gibt es viele. Die .htaccess muss nicht existieren. Ich nehme an deine PHP Version nicht mit dem Apache richtig konfiguriert ist. Meistens sind es die Zugriffsrechte auf den PHP Socket die nicht stimmen. Leider ist es, ohne die ganzen Konfigurationsdateien zu sehen, reine Raterei.
Kannst du denn über den Webbrowser auf PHP Skripte zugreifen?
Erstelle einfach mal im Verzeichnis eine Datei t.php mit folgendem Inhalt:
Quelltext
Dann rufe die Datei mit deinem Webbrowser auf, falls immer noch der Fehler 500 kommt. Liegt es daran, dass der Apache/NGINX Server sich nicht mit deiner PHP Installation unterhalten kann.
EDIT: habe dein print 'Hallo'; überlesen.
Poste doch mal den Code mit dem du auf den Server zugreifen möchtest. Inclusive Create etc. und nicht nur die Post Anweisung.
|
|
mats
Beiträge: 49
|
Verfasst: Do 24.01.19 19:39
Hallo,
ich hab das mit der phpinfo() versucht und bekomme ein 403 auf Port 443. Meine Hallo Datei wird angezeigt.
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| var Server: TIdHTTP; SSLIOHandler: TIdSSLIOHandlerSocketOpenSSL; ParamList: TStringList; begin Server := TIdHTTP.Create(); Server.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(Server);
Server.Request.Charset := 'utf-8'; Server.Request.ContentType := 'text/html';
... result := Server.Post('https://DOMAIN.de/ws/WebServiceBasic.php?' + dbString, ParamList);
... |
mats
|
|
mats
Beiträge: 49
|
Verfasst: Fr 25.01.19 11:02
Hallo,
so, nur noch eine Sache und ich schließe den Thread. Kann es sein daß das Problem in den erweiterten Sicherheitsrichtlineien von PLESK liegt (die man nicht abschalten kann)? Denn wie ich gelesen habe greifen die auch bei der Datenbank. Vielleicht geben die den Fehler 500 zurück?
Danke für die Ideen...
mats
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 25.01.19 11:28
Moin!
mats hat folgendes geschrieben : | ich hab das mit der phpinfo() versucht und bekomme ein 403 auf Port 443. Meine Hallo Datei wird angezeigt. |
mats hat folgendes geschrieben : | Denn wie ich gelesen habe greifen die auch bei der Datenbank. Vielleicht geben die den Fehler 500 zurück? |
Also zunächstmal ist ein HTTP/500 ein "internal server error", kein "bad gateway". Kuckst du hier.
Das ist eigentlich ein Zeichen dafür, dass die PHP-Einrichtung auf der Maschine nicht sauber / korrekt durchgeführt wurde. Wenn die Maschine plain-html verarbeiten kann (das "Hallo"), aber bei einem PHP-Script mit 500 antwortet, dann kann der PHP-Interpreter nicht gestartet werden.
Wie du das auf deinem Server wieder reparierst? Keine Ahnung, meine Glaskugel ist in der Reinigung...
Ich bin mir aber nahezu sicher, dass das nix mit der Client-Seite zu tun hat (also die Delphi-Anwendung).
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
mats
Beiträge: 49
|
Verfasst: Fr 25.01.19 13:06
Hallo Narses,
ich denke mittlerweile auch das es mit dem PHP-Interpreter bzw. mit open_basedir zu tun hat.
mats
|
|