Gehitu TLS Perl-ek SOCKS konexioa ireki ondoren
Jarri IO::Socket::SSL IO::Socket::Socks konexio baten gainean eta egiaztatu helmugako ostalari-izena.
SOCKS konexioak eta TLS konexioak zeregin desberdinak dituzte. Lehenik, lortu byte-korronte bat helmugaraino SOCKS bidez. Gero, hasi TLS korronte horren gainean, helmugako webgunea identifikatuz, proxy-a ez.
HTTPS motako TLS amaierako puntu baterako, antolamendua hau izan daiteke:
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();
Baimendutako proxy publikoaren ibilbide batean dagoen HTTPS helburu publiko batentzat, SOCKS5 proxy zerrendak ProxyAddr eta ProxyPort-erako hautagaiak eskaintzen ditu. Zatiak garraio-geruzak ezartzen ditu; aplikazioak oraindik helmugak espero duen protokoloa bidali behar du eta socket-a itxi amaitu ondoren.
Mantendu nahi den pare-izena
Proxy-aren amaierako puntua lehen konexioarena da. TLS SNI eta ostalari-izenaren egiaztapena example.com-ri buruzkoak dira. Fase horretan proxy-aren ostalari-izena erabiltzeak identitate okerra eskatu edo egiaztatu dezake.
Konfiantza-biltegiaren konfigurazioa beste baldintza independente bat da. Erabili aplikazioak aurreikusitako CA konfigurazioa, diagnostiko-adibide batetik kopiatutako dena fidatzen duen callback baten ordez.
SOCKS urratsa huts egiten badu, TLS parametroak aldatzeak ez du konponduko. SOCKS ondo badoa eta TLS huts egiten badu, gorde ziurtagiriaren eta ostalari-izenaren errorea froga gisa, proxy-aren etenaldi orokor gisa tratatu beharrean.
Moduluen izenek ere garrantzia dute: IO::Socket::Socks eta IO::Socket::SSL eraikitzaile eta bertsio-berritze portaera desberdinak eskaintzen dituzte. Proxy-ra soilik iritsi den TCP socket gordin batek ez du oraindik SOCKS helmuga-negoziazioa osatu.