AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TRestClient mit SSL-P12-Zertifikat, wie funktioniert das?
Thema durchsuchen
Ansicht
Themen-Optionen

TRestClient mit SSL-P12-Zertifikat, wie funktioniert das?

Ein Thema von gmc616 · begonnen am 28. Nov 2022 · letzter Beitrag vom 7. Dez 2022
Antwort Antwort
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#1

TRestClient mit SSL-P12-Zertifikat, wie funktioniert das?

  Alt 28. Nov 2022, 09:25
Hallo DP.

Ich möchte einen REST-Client schreiben, der eine SSL-Verbindung zu einem REST-Server aufbauen soll.
Für die SSL-Verbindung wird mir pro Benutzer ein P12-Zertifikat(??) und ein Passwort bereit gestellt.

Ich habe im Umgang mit Zertifikaten keinerlei Erfahrung.
Das Zertifikat soll zur Laufzeit geladen werden, nicht aus dem Windows-Zertifikatsspeicher.

Funktioniert sowas mit Delphi-Rio-Boardmitteln? Oder brauche ich Fremd-Komponenten?
Wie muß ich vorgehen?

Evtl. hat jemand ein Beispiel für mich?

Danke.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.381 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TRestClient mit SSL-P12-Zertifikat, wie funktioniert das?

  Alt 28. Nov 2022, 09:42
Das Zertifikat soll zur Laufzeit geladen werden, nicht aus dem Windows-Zertifikatsspeicher.

Funktioniert sowas mit Delphi-Rio-Boardmitteln?
Leider gab es da einen Bug, der erst mit Delphi 11 behoben ist. Hier findest du meinen entsprechenden (gelösten) Bugreport:
https://quality.embarcadero.com/brow...4451?filter=-2
Der Bug bezieht sich zwar auf THTTPRIO, aber das gilt genauso für TRestClient.

Bei Delphi 10.3 kannst du, um Zertifikate zur Clientauthentifikation aus dem Speicher oder Dateien zu nutzen, nur andere Komponenten verwenden oder mit Hooks und Pointerspielerei auf die intern dafür vorhandene Funktionalität zugreifen (die vor Delphi 11 zwar vorhanden aber nicht nutzbar war). Ich habe das mit Hook usw. gelöst.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.233 Beiträge
 
Delphi 12 Athens
 
#3

AW: TRestClient mit SSL-P12-Zertifikat, wie funktioniert das?

  Alt 28. Nov 2022, 10:16
Wir hatten es letztendlich manuell gemacht. (wir haben auch nur eine Hand vol API/Methoden, welche wir ansprechen)
Indy/TIdHTTP mit der kranken JSON-Komponente vom Delphi, zum Ansprechen des REST-Servers,
und OpenSSL für die Behandlung des Zertifikats beim Login-Prozess. (das aktuelle Zettifikat wird runtergeladen und zur Berechnung des Key benutzt, für die weitere Kommunikation)
https://code.google.com/archive/p/openssl-delphi/

Für XE + 10.4 (bzw. nun auch noch so im 11.2)



Jupp, war nicht zugreifbar und Kollege hatte dann eine andere Komponente gesucht, wo es ohne Krämpfe ging.
Außerdem XE und TRestClient
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (28. Nov 2022 um 10:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.381 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TRestClient mit SSL-P12-Zertifikat, wie funktioniert das?

  Alt 28. Nov 2022, 11:32
Jupp, war nicht zugreifbar und Kollege hatte dann eine andere Komponente gesucht, wo es ohne Krämpfe ging.
Einen entsprechenden Bugeintrag hatte ich allerdings nicht gefunden. Und meiner wurde ja nach etwa einem Jahr dann gelöst, was ich für einen solchen Bug (vorgesehene spezielle Funktionalität funktionierte noch nie) auch für völlig akzeptabel halte. Nur muss es halt auch jemand melden.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.233 Beiträge
 
Delphi 12 Athens
 
#5

AW: TRestClient mit SSL-P12-Zertifikat, wie funktioniert das?

  Alt 28. Nov 2022, 14:20
Da wir das Problem vorrangig in XE lösen mußten und Emba da sowieso nix mehr macht, hatten wir keine Lust dazu sinlos was zu melden.
(bin grade dabei D11 endlich mal zum laufen zu bekommen, damit wir endlich produktiv umstellen können, aber da knallt noch genug Anderes)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: TRestClient mit SSL-P12-Zertifikat, wie funktioniert das?

  Alt 1. Dez 2022, 15:35
Hmm ... Sorry, aber jetzt bin ich genau so schlau wie vorher.
Die Aussage "Leider gab es da einen Bug, der erst mit Delphi 11 behoben ist." hat nicht unbedingt eine motivationsfördende Wirkung.

Nun gut. Natürlich hab ich ne Reihe rumgegoogelt.
Unter anderem hab ich Dinge gefunden über TIdHTTP, dort kann man mittels IdSSLIOHandlerSocketOpenSSL-Handler ein Zertifikat laden.
Nach einem Blick in den Source ist es offenbar auch möglich, P12 bzw. PFX Zertifikate zu laden.
Das hab ich getan und nach der Angebe des korrekten Passworts in IdSSLIOHandlerSocketOpenSSL1GetPassword, gab es auch keine Fehler mehr.

Es sieht ganz danach aus, als ob man so eine SSL-Verbindung mit dem P12-Zertifikt aufbauen kann.
Wenn ich allerdings einen REST-Endpoint abrufen möchte, bekomme ich einen HTTP-Error 403 zurück.
Okay. Eine 403 ist keine 401.

Aber heißt das nun das die Verbindung tatsächlich funktioniert, oder das nicht?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz