Ƙara TLS bayan Perl ya buɗe haɗin SOCKS
Sanya IO::Socket::SSL a kan haɗin IO::Socket::Socks kuma tabbatar da sunan mai masaukin manufa.
Haɗin SOCKS da haɗin TLS suna da ayyuka daban-daban. Da farko sami rafin byte zuwa manufa ta SOCKS. Sa'an nan fara TLS a kan wannan rafi, inda za a gane rukunin yanar gizon manufa maimakon wakili.
Don ƙarshen TLS irin na HTTPS, tsarin zai iya kasancewa:
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();
Don wata manufa ta HTTPS a kan hanyar wakili na jama'a da aka yarda da ita, jerin wakilan SOCKS5 yana ba da 'yan takara don ProxyAddr da ProxyPort. Wannan ɓangaren yana kafa matakan jigila; aikace-aikacen dole ne har yanzu ya aika da ka'idar da manufar ke tsammani kuma ya rufe soket idan ya gama.
Ka riƙe sunan abokin da aka yi niyya
Ƙarshen wakilin na haɗin farko ne. TLS SNI da tabbatar da sunan mai masauki sun shafi example.com. Yin amfani da sunan mai masaukin wakili a wannan matakin na iya neman ko tabbatar da asalin da bai dace ba.
Saitin ma'ajiyar amana wata buƙata ce mai zaman kanta. Yi amfani da saitin CA da aikace-aikacen ya yi niyya maimakon callback da ke amincewa da komai, wanda aka kwafa daga misalin bincike.
Idan matakin SOCKS ya kasa, canza sigogin TLS ba zai gyara shi ba. Idan SOCKS ya yi nasara kuma TLS ya kasa, ka riƙe kuskuren takardar shaida da sunan mai masauki a matsayin shaida maimakon ɗaukarsa a matsayin gazawar wakili ta gama-gari.
Sunayen modules ma suna da muhimmanci: IO::Socket::Socks da IO::Socket::SSL suna ba da magina da halayen haɓakawa daban-daban. Soken TCP ɗanyen da ya isa wakili kawai bai kammala tattaunawar manufar SOCKS ba tukuna.