AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke HTTPRequest mit Indy und Zertifikaten
Thema durchsuchen
Ansicht
Themen-Optionen

HTTPRequest mit Indy und Zertifikaten

Ein Thema von EmWieMichael · begonnen am 10. Jul 2012 · letzter Beitrag vom 12. Jul 2012
 
EmWieMichael

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

HTTPRequest mit Indy und Zertifikaten

  Alt 10. Jul 2012, 12:51
Hallo,

nachdem ich mit Microsofts XMLHTTPRequester auf die Nase gefallen bin, versuch ich nun folgende Aufgabe mit Indy zu lösen:

Es geht also um ein HTTPRequest mit SSL und Zertifikaten auf Server- und Clientseite. Das Ganze muss dann auch noch über Proxys funktionieren.
Nach stundenlangem Lesen im Internet bin ich mir ziemlich sicher, dass Indy (10.5.5) dass auch kann; nur weiß ich noch nicht genau wie.

1. Das Client-Zertifikat ist korrekt installiert. In den Indy-SSLOptionen werden RootCertFile, Certfile und KeyFile angegeben. Drei Dateien scheinen mir eine zuviel zu sein. Ein weiteres Problem stellt die Tatsache dar, dass das Zertifikat ein Exportieren des privaten Schlüssels nicht zulässt (oder brauch ich den auch garnicht?).

2. Was hat es mit VerifyMode und VerifyPeer auf sich?

3. Meine bisherigen Erkenntnisse sehen wie folgt aus. Habe ich irgendetwas übersehen? (Übrigens habe ich noch ein unlösbares Problem: ich habe selber keinen Zugang zum Server und kann das Programm nur beim Kunden testen...)

Ich freue mich auf Eure Hinweise !

Delphi-Quellcode:
  List:=TStringList.Create;
  List.Add('Dummy');

  IdHTTP:=TIdHTTP.Create(nil);
  IdHTTP.Request.ContentType:='text/xml';
  IdHTTP.Request.CharSet:='utf-8';
  IdHTTP.Request.UserAgent:='Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)';
  IdHTTP.Request.AcceptEncoding:='gzip, deflate';

  FIdSSLIOHandlerSocketOpenSSL:=TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  FIdSSLIOHandlerSocketOpenSSL.SSLOptions.RootCertFile:=
  FIdSSLIOHandlerSocketOpenSSL.SSLOptions.CertFile:=
  FIdSSLIOHandlerSocketOpenSSL.SSLOptions.KeyFile:=
  FIdSSLIOHandlerSocketOpenSSL.SSLOptions.Method:=sslvSSLv3;
  FIdSSLIOHandlerSocketOpenSSL.SSLOptions.Mode:=sslmClient;
  FIdSSLIOHandlerSocketOpenSSL.SSLOptions.VerifyMode:=
  FIdSSLIOHandlerSocketOpenSSL.SSLOptions.VerifyDepth:=

  FIdSSLIOHandlerSocketOpenSSL:=TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  FIdSocksInfo:=TIdSocksInfo.Create(nil);

  with FIdSocksInfo do
   begin
     Host:=aProxy; // 192.168.124.20
     Port:=aPort; // 8080
     Version:=svSocks5;
     Username:='';
     Password:='';
     Enabled:=True;
   end;

  FIdSSLIOHandlerSocketOpenSSL.TransparentProxy:=FIdSocksInfo;
  IdHTTP.IOHandler:=FIdSSLIOHandlerSocketOpenSSL;

  try
    ResponseStr:=IdHTTP.Post(aURL, List);
  except
    ShowMessage('Fehler');
  end;
  List.Free;
  IdHTTP.Free;

Geändert von TBx (14. Okt 2014 um 13:00 Uhr) Grund: code-Tags durch Delphi-Tags ersetzt
  Mit Zitat antworten Zitat
 


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 20:20 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