AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)
Thema durchsuchen
Ansicht
Themen-Optionen

SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)

Ein Thema von atari1040 · begonnen am 2. Feb 2023 · letzter Beitrag vom 24. Jan 2024
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
atari1040

Registriert seit: 18. Mai 2022
Ort: Nur der HSV
109 Beiträge
 
FreePascal / Lazarus
 
#1

SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)

  Alt 2. Feb 2023, 12:48
Moin,

ich habe die Instandhaltung für ein altes Delphi XE8 Projekt mit SOAP-Client übernommen.
Ich habe nur den SourceCode und die alte Exe aber leider nicht die passende IDE. Die Exe war mit Delphi XE8 compiliert worden und scheinbar hat mein Vorgänger Änderungen in der Original soap.SOAPHTTPTrans.pas vorgenommen, um den Client in Verbindung mit dem Windows CertStore zum Laufen zu bringen.
Ich habe das Projekt jetzt unter Delphi 11 zum laufen bekommen aber leider öffnet der Client nun bei jedem Request den Dialog um ein Zertifikat aus dem CertStore=scsUser und CertType:'MY' auszuwählen, was bei Verwendung als CronJob natürlich nicht so nett ist.

Ich kann leider verdammt wenig zu Delphi, SOAP und Zertifikaten finden. Ältere Beiträge sind auch nicht hilfreich, weil sich scheinbar irgendwann zwischen XE8 und Delphi 11 etwas grundlegendes geändert hat.

Hat vielleicht hier jemand eine Idee, wie man den Client dazu bewegen kann, das richtige Zertifikat aus dem Windows CertStore zu übernehmen, ohne einen Dialog zu öffnen?

Danke schonmal
Reinhard
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)

  Alt 2. Feb 2023, 13:26
https://www.embarcadero.com/de/produ...vious-versions


Vieles baut auf Indy auf und dort hatte sich inzwischen Massig geändert.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 2. Feb 2023 um 13:34 Uhr)
  Mit Zitat antworten Zitat
atari1040

Registriert seit: 18. Mai 2022
Ort: Nur der HSV
109 Beiträge
 
FreePascal / Lazarus
 
#3

AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)

  Alt 2. Feb 2023, 13:44
Danke.
Ich habe alle Versionen seit Delphi 1.
Mein Problem sind die Änderungen, die mein Vorgänger in der Original soap.SOAPHTTPTrans.pas gemacht hat, denn die habe ich nicht bekommen.

Es muss doch irgendwie möglich sein ein bestimmtes Zertifikat über die Seriennummer oder den Fingerprint zu definieren und automatisiert dem Request zuzuweisen, ohne das immer der blöde Dialog kommt. Wir können natürlich auch 24/7 jemanden daneben setzen
Es muss ja auch nicht der Store sein. Kann man nicht einfach wie unter Linux auf ein Zertifikat in einem bestimmten Pfad verweisen?
Reinhard
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)

  Alt 2. Feb 2023, 18:12
Achso, klang so als wenn du die nur nicht ins aktuelle Delphi rein bekommst und dann fehlt die passende XE8.


Vielleicht hilft das?
https://docwiki.embarcadero.com/Libr...entCertificate
https://entwickler-ecke.de/topic_SOA...ate_74665.html
https://blog.marcocantu.com/blog/201...p-clients.html


Nja, falls sich nichts direkt für diese Komponente findet:

Da drin wird ja bestimmt sowas wie TIdHTTP oder TIdTCPClient benutzt, bzw. im aktuellen Delphi vielleicht auch THTTPRIO, TNetHTTPClient oder TNetHTTPRequest,
und dafür sollten sich Beispiele finden lassen, wie man ihnen ein Zertifikat gibt.


Dann nur noch schauen, wie man das wo am Besten in die SOAP-Komponente rein bekommt.

[edit] neeeee, die gehen wohl direkt auf WinInet
Zitat:
Note: THTTPReqResp uses WinInet to establish a connection to the server.
Sollte sich das nicht eigentlich selbstständig ein Zertifikat aus dem Store ziehen können, wenn es Eines benötigt?
Bei Google suchenWinInet Certificate Store
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#5

AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)

  Alt 2. Feb 2023, 18:26
leider öffnet der Client nun bei jedem Request den Dialog um ein Zertifikat aus dem CertStore=scsUser und CertType:'MY' auszuwählen, was bei Verwendung als CronJob natürlich nicht so nett ist.
Kann es an fehlenden Berechtigungen liegen?
Ist das Zertifikat in einem Zertifikatsspeicher abgelegt, auf den das Konto des CronJobs Zugriff hat?
(Eventuell kann man das testen, indem man sich als eben dieser Benutzer am System anmeldet)
Michael Justin
habarisoft.com

Geändert von mjustin ( 2. Feb 2023 um 18:30 Uhr)
  Mit Zitat antworten Zitat
atari1040

Registriert seit: 18. Mai 2022
Ort: Nur der HSV
109 Beiträge
 
FreePascal / Lazarus
 
#6

AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)

  Alt 2. Feb 2023, 21:27
leider öffnet der Client nun bei jedem Request den Dialog um ein Zertifikat aus dem CertStore=scsUser und CertType:'MY' auszuwählen, was bei Verwendung als CronJob natürlich nicht so nett ist.
Kann es an fehlenden Berechtigungen liegen?
Ist das Zertifikat in einem Zertifikatsspeicher abgelegt, auf den das Konto des CronJobs Zugriff hat?
(Eventuell kann man das testen, indem man sich als eben dieser Benutzer am System anmeldet)
Ich starte das Programm mit dem User unter dem der CronJob läuft.
Mit der alten Exe, die unter XE8 compiliert wurde, läuft es auch so wie gewünscht. Das Programm zieht sich das Zertifikat ohne Auswahldialog aus dem Store.
Die neue Exe mit Delphi 11 compiliert macht auch alles was sie soll, nur leider öffnet sie immer den Dialog und man muss das Zertifikat erst mit Mausklick bestätigen.
Die Ursache liegt irgendwo in der soap.SOAPHTTPTrans.pas und THTTPReqResp, die von XE8 auf Delphi11 erhebliche Unterschiede aufweist.

Hat vielleicht jemand einen SOAP Client gebaut, der sich automatisch und ohne das Auswahlfenster ein Zertifikat aus dem Store holt. Was mit XE8 funktionierte muss doch auch mit Delphi11 möglich sein?
Reinhard
  Mit Zitat antworten Zitat
atari1040

Registriert seit: 18. Mai 2022
Ort: Nur der HSV
109 Beiträge
 
FreePascal / Lazarus
 
#7

AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)

  Alt 2. Feb 2023, 21:40
Achso, klang so als wenn du die nur nicht ins aktuelle Delphi rein bekommst und dann fehlt die passende XE8.
sorry, habe mich wohl missverständlich ausgedrückt. Ich meinte damit, dass ich nicht die aufgesetzte Entwicklungsumgebung XE8 meines Vorgängers zur Verfügung habe. Der hat leider THTTPReqResp in den Delphi Sourcen um den Zugriff auf den Store erweitert. Leider hat er nicht abgeleitet sondern direkt die Sourcen geändert und die sind nie im Sourcecode Repo gelandet sondern mit seinem Rechner gelöscht worden.
Mit Delphi11 würde ich den Teil des Codes vermutlich sowieso nicht zum laufen bekommen, weil die so viel geändert haben. Ich hatte die leise Hoffnung, dass mit einer neuen Delphi Version der direkte Zugriff auf den CertStore irgendwie einfacher geworden ist.
Reinhard
  Mit Zitat antworten Zitat
EmWieMichael

Registriert seit: 28. Mär 2012
103 Beiträge
 
#8

AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)

  Alt 3. Feb 2023, 05:36
...
Hat vielleicht jemand einen SOAP Client gebaut, der sich automatisch und ohne das Auswahlfenster ein Zertifikat aus dem Store holt. ...
Ja: https://www.delphipraxis.net/1321277-post22.html
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)

  Alt 3. Feb 2023, 07:03
Ich hatte die leise Hoffnung, dass mit einer neuen Delphi Version der direkte Zugriff auf den CertStore irgendwie einfacher geworden ist.
In Delphi 11 gibt es aufgrund meines Tickets neue Eigenschaften für die Clientzertifikat-Authentifikation:
https://quality.embarcadero.com/browse/RSP-34451

Mit Zertifikaten aus dem Store ging es über das entsprechende Event aber auch vorher problemlos (HTTPRIO.HTTPWebNode.OnNeedClientCertificate). Ich wollte die Zertifikate aber nicht in den Store packen müssen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
atari1040

Registriert seit: 18. Mai 2022
Ort: Nur der HSV
109 Beiträge
 
FreePascal / Lazarus
 
#10

AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)

  Alt 3. Feb 2023, 11:15
Vielen Dank schon mal für die guten Hinweise. Ich schaue mir die an und versuche sie in die vorhandenen Sourcen zu implementieren. Wenn jemand noch gute Ideen hat, gerne immer her damit.
Reinhard
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 13:58 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