![]() |
Zertifikatsproblem
Hi Zusammen,
ich möchte über eine FMX-Anwendung (sowohl Windows als auch Android) Daten von einem Server entgegen nehmen. Ich nutze einen TNetHTTPClient und habe auf dem Server dann eine Seite, welche mir die Infos bereit stellt. Unter Windows funktioniert das ganze auch soweit. Unter Android bekomme ich folgenden Fehler: --- Im Projekt <Whatever>.apk ist eine Exception der Klasse EJNIException mit der Meldung 'java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.' aufgetreten. --- Jetzt habe ich hier ![]() gefunden, wie das theoretisch gehen soll. Ich bin also hingegangen und habe die Zertifikatsdatei aus Firefox als CER-Datei exportiert und versucht unter "Bereitstellung" einzutragen. Das klappt aber nicht. Aktuell kommen zwei Meldnugen: network_security.xml: Noresource type specified und MeinCert.crt: Error parsing XML: syntax error Derzeit liegen beide Dateien im Unterordner "res\xml\" welchen ich selbst angelegt habe. Weiß jemand die Schritte, die ich machen müsste um die CertificateException weg zu bekommen?
Delphi-Quellcode:
vom TNetHTTPClient-Objekt zu setzen und einfach nur
OnValidateServerCertificate
Delphi-Quellcode:
reicht
Accept := True;
übrigens auch nicht. Den Server kann ich auch nicht umstellen, so dass der Zugriff per http möglich wäre. Vielen Dank schonmal für die Zeit. Mit freundlichem Gruß Incocnito |
AW: Zertifikatsproblem
... ok Aktualisierung:
Die Pfade sind fest definiert vgl.: ![]() und für das Zertifikat muss ich in den Ordner "raw" gehen. Die Zertifikatsdatei liegt nun also mit dem Namen "my_ca.crt" in "res\raw\" (sowohl lokal, aber vor allem im Remote-Pfad) In der Network-Konfig steht nun auch src="@raw/my_ca" Also keine eigenen Dateinamen mehr, weil ich nicht weiß, was das wieder für Auswirkungen hat. Hier: ![]() waren auch noch ein paar Erklärungen zu der Netzwerk-Konfiguration. Leider bekomme ich nun den Fehler --- Im Projekt <Whatever>.apk ist eine Exception der Klasse EJNIException mit der Meldung 'java.security.cert.CertificateException: Domain specific configurations require that hostname aware checkServerTrusted(X509Certificate[], String, String) is used' aufgetreten. --- Wo ich nicht weiß, wo das wieder her kommt. Windows-Compilat läuft nach wie vor. LG Incocnito |
AW: Zertifikatsproblem
<<Push>>
Oder Allgemein: Hat jemand irgendwo mal eine Anleitung gesehen, wie man eine App anpassen muss um eine Verbindung zu einem HTTPS-Server herzustellen, welcher ein Self-Signed-Zertifikat hat? LG Incocnito |
AW: Zertifikatsproblem
Google sagt dazu:
![]() |
AW: Zertifikatsproblem
Auf der Seite wird unter
![]() auf den TrustManager verwiesen. Gibt es sowas für Delphi (FMX)? LG Incocnito |
AW: Zertifikatsproblem
Keine Ahnung, ich mache schon seit Jahren nichts mehr mit FMX.
|
AW: Zertifikatsproblem
Ich glaube zwar das ist nicht dein Problem, aber vielleicht hilft es dir:
Nach dem Update von 10.4.1 auf 10.4.2 haben unsere TNetHTTPClients nicht mehr funktioniert. Das ist nur passiert, wenn das OnValidateServerCertificate gesetzt wurde. Die Lösung für das Problem war, die Property "SynchronizedEvents" vom TNetHttpClient auf False (bzw. auf True, je nachdem wie du es einsetzt) zu setzen. Damit hat es wieder auf allen Plattformen funktioniert, vorher ging nur Windows. Da ich aber nie eine Fehlermeldung bekommen haben (Die App hat sich einfach aufgehangen bis Android eingeschritten ist), kann ich nicht versichern dass es das gleiche Problem ist. |
AW: Zertifikatsproblem
Zitat:
Das muss sich aber dringend mal ändern :warn: </OT> |
AW: Zertifikatsproblem
Zitat:
|
AW: Zertifikatsproblem
Zitat:
Das hat leider nicht geholfen. Wenn ich den auf "False" gesetzt habe kamen sogar noch Fehlermeldungen, dass "CheckSynchronized nicht vom Haupt-Thread aufgerufen" wurde. Wobei ich nicht sehe, warum das nicht im Haupt-Thread läuft, mal so am Rande. Außerdem hatte ich den Fall, dass es nicht unter Windows 8.1 lief. Das konnte ich beheben, indem ich vom TNetHttpClient die SecureProtokolls geändert hatte. Bisher hatte ich "alles" reingeworfen, nun wo ich die SSL-Einträge rausgenommen habe, lief es wieder. vgl.: ![]() Leider läuft es nach wie vor nicht unter Android. Wie gesagt, falls irgendjemand Erfahrungen mit serverseitigen Self-Signed-Zertifikaten und HTTP-Requests (hier POST) unter FMX (im speziellen Android) hat, immer her mit den Infos. Leider kann ich wegen dem echten Zertifikat auf dem echten Server und den Daten keine kleine Beispiel-App bauen. Liebe Grüße Incocnito |
AW: Zertifikatsproblem
Brauche ich dafür vielleicht den Private-Key-Teil des Zertifikats?
Ich habe gerade im Handy selbst versucht das Zertifikat zu registrieren, was er aber ablehnt. Das wäre aber eine ungünstige Lösung. Ich weiß ja, dass ich dem Server vertrauen kann, da bekomme ich aber ja das Private-Key-Teil ja nicht unbedingt her. |
AW: Zertifikatsproblem
zum Prüfen brauchst eigentlich nur den Public-Teil. (das Private/Geheime hat, außer auf dem Server, nirgendwo was zu suchen)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz