Einzelnen Beitrag anzeigen

idontknow

Registriert seit: 21. Apr 2008
Ort: Schleswig-Holstein
60 Beiträge
 
Delphi 11 Alexandria
 
#1

Indy10 SSL unter Android: Kann kein Root-Zertifikat laden...

  Alt 7. Apr 2017, 13:52
Ich verzweifele hier gerade beim Versuch, eine sichere SSL-Übertragung zwischen iOS/Android/Windows-FMX-Client und Windows-VCL-Indy10-Server auf die Beine zu stellen...

Beim Versuch, ein Root-Zertifikat unter Android einzubinden, habe ich gerade seltsame Probleme:
Unter "Bereitsstellung" habe ich das Zertifikat "cacert.pem" im Remotepfad "assets\internal" eingebunden.
Wenn ich (siehe Source-Schnipsel) mit FileExists nachschaue, dann sehe ich die Datei. Ich kann das File auch in eine Stringlist laden und mir anzeigen lassen.
Wenn ich allerdings den IdSSLIoHandler dazu anweise, die Datei zu öffnen, dann bekomme ich diese Fehlermeldung:

Erste Gelegenheit für Exception bei $61B1B8F3. Exception-Klasse EIdOSSLLoadingRootCertError mit Meldung
'Stammzertifikat konnte nicht geladen werden.
error:0B064071509 certificate routines:ADD_CERT_DIR:invalid directory'.
Prozess Project_FMX_Client.apk (32456)


Hat jemand eine Idee?

Hier mein Quellcode-Auszug:

Delphi-Quellcode:
CaCertFile := TPath.Combine(TPath.GetDocumentsPath, 'cacert.pem');
IdSSLIOHandlerSocketOpenSSL.SSLOptions.RootCertFile := CaCertFile; // Stammzertifikat laden
Info('Root=' + CaCertFile); // '/data/data/com.embarcadero.Project_FMX_Client/files/cacert.pem'
Info('Datei existiert = ' + IntToStr(Integer(FileExists(CaCertFile)))); // gibt 1 aus
Anmerkung: Info(Text) gibt nur Text in einem Memo aus.
Oliver
  Mit Zitat antworten Zitat