AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi XE2 - SOAP per HTTPS
Thema durchsuchen
Ansicht
Themen-Optionen

XE2 - SOAP per HTTPS

Ein Thema von Sherlock · begonnen am 8. Mai 2015 · letzter Beitrag vom 18. Aug 2015
Antwort Antwort
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#1

XE2 - SOAP per HTTPS

  Alt 8. Mai 2015, 12:26
Hi,
wie bringe ich meinem XE2 bei, unter Windows per HTTPS mit einem SOAP-Server zu kommunizieren?
Konkret habe ich das Problem, daß die Unit Soap.SOAPHTTPTrans zwar allerlei dafür vorzusehen scheint, aber nur über die Indys. Insbesondere der Compileschalter USE_INDY ist da von Interesse. Denn der wird im Verlauf der Unit mehrfach abgefragt und beschäftigt sich intensiv mit den nötigen Details für HTTPS/Zertifikate etc. Er wird am Anfang der Unit hierüber
Delphi-Quellcode:
{$IFDEF POSIX}
  {$DEFINE USE_INDY}
{$ENDIF}
{$IFDEF MSWINDOWS}
  {.$DEFINE USE_INDY}
{$ENDIF}
aber offenkundig für Windows nicht gesetzt(*).
Was ist zu tun, damit eine HTTPS-Kommunikation Möglich wird, und weiter: Wie wähle ich das Zertifikat aus, daß für die Kommunikation genutzt werden soll?

Danke,
Sherlock

(*) Man beachte den kleinen Punkt vor dem $DEFINE
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: XE2 - SOAP per HTTPS

  Alt 8. Mai 2015, 12:47
Willst Du Serverzertifikate oder auch Clientzertifikate verwenden? Falls nur Server, sollte die Installation des Zertifkates ausreichen.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#3

AW: XE2 - SOAP per HTTPS

  Alt 8. Mai 2015, 13:32
Danke Dann nehme ich einfach mal an, daß das mit dem Zertifikat sich erledigt hat. Was ist nun aber in meinem SOAP Client zu tun? Ich habe das klitzigkleine Problem, daß ich nciht direkt am fraglichen SOAP-Server testen kann. Ich muss also etwas ins Blaue hinein entwickeln und wenn es ungefähr richtig erscheint, kann ich das an den Kunden weiterleiten, das er es ausprobiert. Diesen Vorgang würde ich halt gerne so selten wie möglich durchexerzieren...

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: XE2 - SOAP per HTTPS

  Alt 8. Mai 2015, 14:06
Wenn Du volle Kontrolle über die Zertifikate möchtest, kannst Du das im THTTPRIO.OnBeforePost machen.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#5

AW: XE2 - SOAP per HTTPS

  Alt 11. Mai 2015, 13:34
OK, also nochmals zur Konkretisierung: Zertifikate sind abgehandelt. Kann ein Delphi XE2 SOAP-Client "out of the box" https? Also quasi nur durch setzen der Empfänger URI auf etwas, das mit "https://" beginnt. Ich kann es wie gesagt nicht testen, sonst würde ich es bestimmt tun.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#6

AW: XE2 - SOAP per HTTPS

  Alt 6. Jul 2015, 15:34
Ich muss das wieder aufgreifen. Leider ist mir nicht klar, wie ich vorgehen muss. Offenkundig kann der XE2 Soap-Client kein https. Wie muss ich nun also vorgehen, um eine SSL-Verschlüsselung durchzuführen? Das OnBeforePost hört sich gut an, aber was ist dort zu tun?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann

Geändert von Sherlock ( 6. Jul 2015 um 15:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: XE2 - SOAP per HTTPS

  Alt 6. Jul 2015, 17:09
Schon diesen Link verfolgt?

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#8

AW: XE2 - SOAP per HTTPS

  Alt 18. Aug 2015, 10:44
Und weiter gehts, das Thema kommt nur schleppend voran.
Der Link hat leider nciht gefruchtet. Ich bekommen beim Versuch die Verbindung herzustellen die Fehlermeldung:
Zitat:
A certificate is required to complete client authentication - URL:https://xxxx.xxxx.xx - SOAPAction:http://xxx.xxxx.xx/service
Ich müsste wohl explizit das Zertifikat ansprechen. Ein anderer hat das in .net so gelöst:
Code:
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(pUrl);
httpWebRequest.Headers.Add("SOAPAction", "service");
httpWebRequest.ContentType = "text/xml; charset=utf-8";
httpWebRequest.Method = "POST";
httpWebRequest.ClientCertificates.Add(new X509Certificate2(pCertificate, pCertificatePassword));
Byte[] postDataBytes = Encoding.UTF8.GetBytes(postData);
httpWebRequest.ContentLength = postDataBytes.Length;
Stream requestStream = httpWebRequest.GetRequestStream();
requestStream.Write(postDataBytes, 0, postDataBytes.Length);
requestStream.Close();
HttpWebResponse resp = (HttpWebResponse)httpWebRequest.GetResponse();
StreamReader sr = new StreamReader(resp.GetResponseStream());
string result = sr.ReadToEnd();

pUrl = URL für den Webservice
pCertificate = Dateiname des Zertifikates
uCertificatePassword = Kennwort des Zertifikates
postData = komplettes XML-Dokument (Envelope)
Wie passt das mit dem bisherigen Ansatz zusammen?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  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 04:23 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