Atozed Forums
Delphi INDY + SSL + Socks - Printable Version

+- Atozed Forums (https://www.atozed.com/forums)
+-- Forum: Indy (https://www.atozed.com/forums/forum-8.html)
+--- Forum: Indy General Discussion (https://www.atozed.com/forums/forum-9.html)
+--- Thread: Delphi INDY + SSL + Socks (/thread-849.html)



Delphi INDY + SSL + Socks - evgenij-evgenij-89 - 11-29-2018

There is a problem: When using a Socks4 proxy is not running https, the redirect goes to http. Libraries are, uses are connected.

Code:
var
 https: TIdHTTP;
 ssl: TIdSSLIOHandlerSocketOpenSSL;
 sock: TIdSocksInfo;
begin
 https:=TIdHTTP.Create(nil);
 ssl := TIdSSLIOHandlerSocketOpenSSL.Create(https);
 ssl.SSLOptions.CipherList := 'ALL';
 ssl.PassThrough := False;
 sock := TIdSocksInfo.Create;
 sock.authentication := sanoauthentication;
 sock.version := svSocks4;
 sock.host := '201.222.29.86';
 sock.port := 4145;
 ssl.transparentproxy := sock;
 https.IOHandler := ssl;
 https.HandleRedirects:=true;
 try
   https.get('https://www.facebook.com/');
 except

 end;
 FreeAndNil(sock);
 FreeAndNil(ssl);
 FreeAndNil(https);

[Image: uFycM.png]
If you remove the socks4, then all is well:

[Image: b7vAQ.png]


RE: Delphi INDY + SSL + Socks - rlebeau - 11-29-2018

Copied from my comment to your same question on StackOverflow:

Quote:You are not supposed to set PassThrough manually when using TIdHTTP. You are trying to force SSL on the connection to the proxy server, before it has connected to the HTTP server. Let TIdHTTP manage PassThrough for you. It will initialize SSL after connecting to the proxy.