![]() |
SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)
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 :-) |
AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)
![]() Vieles baut auf Indy auf und dort hatte sich inzwischen Massig geändert. |
AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)
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? |
AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)
Achso, klang so als wenn du die nur nicht ins aktuelle Delphi rein bekommst und dann fehlt die passende XE8. :oops:
Vielleicht hilft das? ![]() ![]() ![]() 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 :stupid: Zitat:
![]() |
AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)
Zitat:
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) |
AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)
Zitat:
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? |
AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)
Zitat:
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. |
AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)
Zitat:
![]() |
AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)
Zitat:
![]() 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. |
AW: SOAP THttpReqResp mit Certificate (Windows CertStore scsUser)
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. :-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 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