പ്രോക്സി ചെയ്ത Mechanize HTTPS അഭ്യർത്ഥനയുടെ പിന്നിലെ പാളികൾ
Mechanize, LWP-യുടെ HTTPS പ്രോട്ടോക്കോൾ മൊഡ്യൂൾ, SSL backend എന്നിവ ഒരു HTTPS അഭ്യർത്ഥന റൂട്ട് ചെയ്യാനും ടണൽ ചെയ്യാനും പരിശോധിക്കാനും എങ്ങനെ സഹകരിക്കുന്നുവെന്ന് കാണുക.
എടുക്കുന്നതിന് മുമ്പ് Mechanize ഒബ്ജക്റ്റിൽ റൂട്ട് സജ്ജമാക്കുക:
use WWW::Mechanize;
my $mech = WWW::Mechanize->new(timeout => 30);
$mech->proxy(
['http', 'https'],
'http://proxy.example.net:8080',
);
ഉദാഹരണത്തിലെ ഉദ്ദേശിച്ച HTTP ലിസണർ ഉപയോഗിക്കുക; അനുവദനീയമായ പൊതു ലക്ഷ്യങ്ങളിലേക്കുള്ള അഭ്യർത്ഥനകൾക്ക് സ്ഥാനാർത്ഥികൾ HTTP പ്രോക്സി പട്ടികയിൽ ണ്. അറേ ലക്ഷ്യ സ്കീമുകൾ പേരിടുന്നു. http:// എൻഡ്പോയിന്റ് HTTPS-ന് സാധാരണ CONNECT റൂട്ട് നൽകുന്നു: പ്രോക്സിയിലേക്ക് HTTP, ലക്ഷ്യത്തിലേക്ക് ടണൽ, തുടർന്ന് ലക്ഷ്യ TLS. വിന്യാസം പകരം പരിസ്ഥിതി ക്രമീകരണങ്ങൾ ഉപയോഗിക്കുന്നുവെങ്കിൽ, $mech->env_proxy ആണ് ബദൽ; അവ പിന്നീട് ഇമ്പോർട്ട് ചെയ്യുന്നത് കോഡിൽ നൽകിയ റൂട്ട് മാറ്റിയേക്കാം.
Mechanize വേറിട്ട ഒരു HTTPS പ്രോക്സി എൻജിൻ നൽകുന്നതിന് പകരം LWP::UserAgent നെറ്റ്വർക്കിംഗ് പാരമ്പര്യമായി സ്വീകരിക്കുന്നു:
- Mechanize ലിങ്കുകൾ, ഫോമുകൾ, നിലവിലെ പേജിന്റെ സ്വഭാവം എന്നിവ നൽകുന്നു.
- LWP::UserAgent ഉം അതിന്റെ HTTP ഗതാഗതവും റൂട്ട് തിരഞ്ഞെടുത്ത് CONNECT ക്രമീകരിക്കുന്നു.
- LWP::Protocol::https HTTPS കൈകാര്യം നൽകുകയും കണക്ഷൻ അപ്ഗ്രേഡ് ചെയ്യുകയും ചെയ്യുന്നു.
- Net::HTTPS അതിന്റെ SSL backend-നൊപ്പം TLS കഴിവുള്ള സോക്കറ്റ് നൽകുന്നു, ആധുനിക കോൺഫിഗറേഷനുകളിൽ സാധാരണയായി IO::Socket::SSL.
ഇൻസ്റ്റാൾ ചെയ്ത SSL backend സ്വയം ഒരു പ്രോക്സി തിരഞ്ഞെടുക്കുന്നില്ല. യഥാർത്ഥ HTTPS ഹോസ്റ്റ്നാമം URL-ൽ നിലനിർത്തുക: CONNECT സ്വീകരണം ആ സൈറ്റിന്റെ സർട്ടിഫിക്കറ്റ് പരിശോധിക്കുന്നില്ല.
പഴയ ഘടകങ്ങൾ പരിപാലിക്കുമ്പോൾ ഈ അതിരുകൾ വേർതിരിക്കുക. libwww-perl 6.06 ഉം വെവ്വേറെ വിതരണം ചെയ്യുന്ന LWP::Protocol::https 6.06 ഉം സാധാരണ HTTP CONNECT-ന് ഏകോപിത പരിഹാരങ്ങൾ അവതരിപ്പിച്ചു. UserAgent പതിപ്പ് മാത്രം HTTPS മൊഡ്യൂൾ തിരിച്ചറിയുന്നില്ല. LWP::Protocol::https 6.15 TLS പ്രവർത്തനക്ഷമമായ പ്രോക്സി എൻഡ്പോയിന്റുകൾക്ക് ഒരു പരിഹാരം ചേർത്തു, അവയുടെ https:// സ്കീം ലക്ഷ്യ TLS-ന് മുമ്പ് പ്രോക്സിയിലേക്ക് TLS ചേർക്കുന്നു.
പഴയ Net::SSL/Crypt::SSLeay കോൺഫിഗറേഷനുകൾക്ക് പകരം ആ backend-ന്റെ രേഖപ്പെടുത്തിയ HTTPS_PROXY പരിസ്ഥിതി സംവിധാനം ഉപയോഗിക്കാം. LWP റൂട്ടിംഗ് കൈവശം വയ്ക്കുന്ന ആധുനിക IO::Socket::SSL പാതയിൽ അതിന്റെ പാചകക്കുറിപ്പ് പ്രയോഗിക്കരുത്.
ഘടകം തിരഞ്ഞെടുക്കാൻ ആദ്യ പരാജയപ്പെട്ട ഘട്ടം ഉപയോഗിക്കുക: കാണാത്ത HTTPS ഹാൻഡ്ലർ പ്രോട്ടോക്കോൾ മൊഡ്യൂളിനെ ബാധിക്കുന്നു; നിരസിച്ച CONNECT റൂട്ട്, ക്രെഡൻഷ്യലുകൾ, നയം എന്നിവയെ ബാധിക്കുന്നു; ടണലിന് ശേഷമുള്ള സർട്ടിഫിക്കറ്റ് പിശക് ലക്ഷ്യത്തിന്റെ ഐഡന്റിറ്റിയെയും വിശ്വാസത്തെയും ബാധിക്കുന്നു. ആ തെളിവ് പിന്തുണയ്ക്കുന്ന ഘടകം മാറ്റുമ്പോൾ പരിശോധന നിലനിർത്തുക.