Il-konnessjoni SOCKS u l-konnessjoni TLS għandhom xogħlijiet differenti. L-ewwel ġib fluss ta' bytes lejn id-destinazzjoni permezz ta' SOCKS. Imbagħad ibda TLS fuq dak il-fluss, billi tidentifika s-sit tad-destinazzjoni u mhux il-proxy.

Għal punt tat-tarf TLS stil HTTPS, l-arranġament jista' jkun:

use IO::Socket::Socks;
use IO::Socket::SSL;

my $target = 'example.com';
my $socket = IO::Socket::Socks->new(
    SocksVersion => 5,
    ProxyAddr => '127.0.0.1',
    ProxyPort => 1080,
    ConnectAddr => $target,
    ConnectPort => 443,
) or die $!;

IO::Socket::SSL->start_SSL(
    $socket,
    SSL_hostname => $target,
    SSL_verifycn_name => $target,
    SSL_verifycn_scheme => 'http',
    SSL_verify_mode => SSL_VERIFY_PEER,
) or die IO::Socket::SSL::errstr();

Għal mira HTTPS pubblika fuq rotta tal-proxy pubbliku permessa, il-lista tal-proxy SOCKS5 toffri kandidati għal ProxyAddr u ProxyPort. Il-framment jistabbilixxi s-saffi tat-trasport; l-applikazzjoni xorta trid tibgħat il-protokoll li tistenna d-destinazzjoni u tagħlaq is-socket meta tispiċċa.

Żomm l-isem tal-peer intenzjonat

Il-punt tat-tarf tal-proxy jappartjeni għall-ewwel konnessjoni. SNI tat-TLS u l-verifika tal-isem tal-host jirrigwardaw example.com. L-użu tal-isem tal-host tal-proxy f'dak l-istadju jista' jitlob jew jivverifika identità żbaljata.

Il-konfigurazzjoni tal-maħżen tal-fiduċja hija rekwiżit ieħor indipendenti. Uża l-konfigurazzjoni tas-CA maħsuba mill-applikazzjoni minflok callback li jafda kollox, ikkupjat minn eżempju dijanjostiku.

Jekk il-pass SOCKS ifalli, li tbiddel il-parametri tat-TLS mhux se jsewwih. Jekk SOCKS jirnexxi u TLS ifalli, żomm l-iżball taċ-ċertifikat u l-isem tal-host bħala evidenza minflok ma ttrattah bħala waqfa ġenerali tal-proxy.

L-ismijiet tal-moduli wkoll jgħoddu: IO::Socket::Socks u IO::Socket::SSL joffru kostrutturi u mġiba ta' aġġornament differenti. Socket TCP mhux ipproċessat li sempliċement wasal għall-proxy għadu ma lesta x-xorta ta' negozjazzjoni tad-destinazzjoni SOCKS.

Artikli relatati