Go ബിൽഡും Composer ഇൻസ്റ്റാളും Python ക്ലയന്റും വീട്ടിൽ എല്ലാം പ്രവർത്തിക്കുന്നു, കമ്പനിയുടെ VPN-നുള്ളിൽ എല്ലാം പരാജയപ്പെടുന്നു. ഈ മാതൃക നിങ്ങളോട് പറയുന്നത് പാതയെപ്പറ്റിയാണ്, ആപ്ലിക്കേഷനെപ്പറ്റിയല്ല. ടണലിൽ എന്തോ നിങ്ങളുടെ പ്രോസസ് കാണുന്ന സർട്ടിഫിക്കറ്റ് ശൃംഖല മാറ്റി, അല്ലെങ്കിൽ ശൃംഖല എത്തുന്നതിന് മുൻപേ ഹാൻഡ്ഷേക്ക് പുനഃസജ്ജമാക്കി. രണ്ട് തകരാറുകളും ടെർമിനലിൽ ഒരുപോലെ തോന്നുന്നു, എന്നാൽ തീർത്തും വ്യത്യസ്ത പ്രതികരണങ്ങൾ ആവശ്യപ്പെടുന്നു.

മൂന്ന് സന്ദേശങ്ങൾ, മൂന്ന് സംവിധാനങ്ങൾ

x509 certificate signed by unknown authority പിശക് എന്നാൽ ഒരു ശൃംഖല നിർമ്മിച്ചു, അതിന്റെ റൂട്ട് ആ പ്രോസസ് ഉപയോഗിക്കുന്ന ട്രസ്റ്റ് സ്റ്റോറിൽ ഇല്ല എന്നാണ്. self-signed certificate in certificate chain പിശക് സാധാരണയായി പരിശോധനാ പ്രോക്സി സ്വന്തം സർട്ടിഫിക്കറ്റ് കൊണ്ട് ഉത്തരം നൽകി എന്നാണ്, അത് നിങ്ങളുടെ റൺടൈം തിരിച്ചറിയാത്ത ശൃംഖലയാണ്. ഹാൻഡ്ഷേക്കിനിടയിൽ SSL EOF എന്നാൽ ഉപയോഗപ്രദമായ ഏതെങ്കിലും സർട്ടിഫിക്കറ്റ് അയയ്ക്കുന്നതിന് മുൻപേ കണക്ഷൻ അടച്ചു എന്നാണ്, അത് ClientHello നിരസിക്കുന്ന ഒരു ഇടനില ഉപകരണമാണ്, ഒരു ട്രസ്റ്റ് പ്രശ്നവുമല്ല.

അസുരക്ഷിത ഫ്ലാഗ് ചേർത്താൽ മൂന്ന് സന്ദേശങ്ങളും അപ്രത്യക്ഷമാകും, എന്നാൽ ഇടപെടൽ അതേ സ്ഥലത്ത് തുടരും, കൂടാതെ യഥാർത്ഥ ആക്രമണകാരിയെ പിടിക്കുമായിരുന്ന പരിശോധനയും അത് നീക്കം ചെയ്യുന്നു.

പ്രോസസ് യഥാർത്ഥത്തിൽ വായിക്കുന്ന ബണ്ടിൽ കണ്ടെത്തുക

Windows സ്റ്റോറിൽ ഇൻസ്റ്റാൾ ചെയ്ത കോർപ്പറേറ്റ് റൂട്ട് സിസ്റ്റം സ്റ്റോർ പരിശോധിക്കുന്ന ബ്രൗസറുകളും .NET ആപ്ലിക്കേഷനുകളും ശരിയാക്കുന്നു. കണ്ടെയ്നറിനുള്ളിൽ പ്രവർത്തിക്കുന്ന ബിൽഡിന് അത് ഒന്നും ചെയ്യുന്നില്ല, കാരണം അതിന് സ്വന്തം CA ബണ്ടിൽ ഉണ്ട്; certifi ഉപയോഗിക്കുന്ന Python പ്രോസസിനും സ്വന്തം ഉൾപ്പെടുത്തിയ പട്ടിക ഉപയോഗിക്കുന്ന Node പ്രോസസിനും ഒന്നും ചെയ്യുന്നില്ല. Go ബൈനറി പ്രവർത്തിക്കുന്ന പരിസ്ഥിതിയുടെ സിസ്റ്റം പൂൾ വായിക്കുന്നു, അതായത് കണ്ടെയ്നർ, ലാപ്ടോപ്പല്ല. അതിനാൽ ഒരു യന്ത്രം ഒരേസമയം പ്രവർത്തിക്കുന്ന ബ്രൗസറും പരാജയപ്പെടുന്ന ബിൽഡ് ഉപകരണവും നൽകുന്നു.

അനുമാനിക്കുന്നതിന് പകരം ഉപകരണത്തോട് ചോദിക്കുക. python3 -c "import ssl; print(ssl.get_default_verify_paths())" Python സമീപിക്കുന്ന ഫയലുകൾ പ്രിന്റ് ചെയ്യുന്നു, node -e "console.log(process.env.NODE_EXTRA_CA_CERTS)" ഓവർറൈഡ് ഇതിനകം സെറ്റ് ചെയ്തിട്ടുണ്ടോ എന്ന് കാണിക്കുന്നു. കണ്ടെയ്നറിന്, അതേ പരിശോധന ഇമേജിനുള്ളിൽ പ്രവർത്തിപ്പിക്കുക, കാരണം ബിൽഡ് യഥാർത്ഥത്തിൽ ഉപയോഗിക്കുന്ന പരിസ്ഥിതി അതാണ്.

ബിൽഡ് പ്രവർത്തിക്കുന്നിടത്ത് ഒരു റൂട്ട് ഇൻസ്റ്റാൾ ചെയ്യുക

പരിശോധനാ റൂട്ട് IT-യിൽ നിന്ന് PEM ഫയലായി വാങ്ങി, വിശ്വസിക്കുന്നതിന് മുൻപ് അതിന്റെ വിരലടയാളം വേറിട്ട ചാനലിലൂടെ പരിശോധിക്കുക. Debian അടിസ്ഥാനമാക്കിയ ഇമേജുകളിൽ അത് /usr/local/share/ca-certificates/ ലേക്ക് പകർത്തി update-ca-certificates പ്രവർത്തിപ്പിക്കുക; RHEL കുടുംബത്തിലെ ഇമേജുകൾ ഫയൽ /etc/pki/ca-trust/source/anchors/ ലേക്ക് ഇട്ടതിന് ശേഷം update-ca-trust ഉപയോഗിക്കുന്നു. കണ്ടെയ്നർ ബിൽഡിൽ, പരാജയപ്പെടുന്ന കമാൻഡിന് മുൻപ് ആ ഘട്ടങ്ങൾ ചേർക്കുക, അങ്ങനെ ലെയർ ഡിപ്പൻഡൻസി ഇൻസ്റ്റാളിന് മുകളിൽ കാഷ് ചെയ്യപ്പെടും.

പ്രാദേശിക devcontainer-ന്, PEM മൗണ്ട് ചെയ്ത് തുടക്കത്തിൽ അതേ അപ്ഡേറ്റ് കമാൻഡ് പ്രവർത്തിപ്പിക്കുക, മറ്റാർക്കും പുനർനിർമ്മിക്കാൻ കഴിയാത്ത വ്യക്തിഗത ഇമേജിൽ അത് ചുട്ടെടുക്കുന്നതിന് പകരം. സ്വന്തം ബണ്ടിൽ കൊണ്ടുവരുന്ന ഉപകരണങ്ങൾക്ക് സ്വന്തം രേഖപ്പെടുത്തിയ ഓവർറൈഡ് വേണം: pip-ന് സർട്ടിഫിക്കറ്റ് ക്രമീകരണമുണ്ട്, npm-ന് cafile ക്രമീകരണമുണ്ട്, ബാക്കിയുള്ളവയിൽ മിക്കതും സ്റ്റാൻഡേർഡ് എൻവയോൺമെന്റ് വേരിയബിളുകൾ സ്വീകരിക്കുന്നു.

ഇത് ഏതെങ്കിലും സർട്ടിഫിക്കറ്റ് സ്വീകരിക്കുന്നതിന് തുല്യമല്ല. പരിശോധന നടത്തുന്ന കക്ഷിയിൽ നിന്ന് ലഭിച്ച ഒരു നിർദ്ദിഷ്ട റൂട്ട് ഒരു പരിസ്ഥിതിയിലേക്ക് നിങ്ങൾ ചേർക്കുന്നു, മറ്റെല്ലാ ശൃംഖലകൾക്കും പരിശോധന ഓണായി തുടരുന്നു. ഏത് ഫയൽ ചേർത്തു, എപ്പോൾ കാലഹരണപ്പെടും എന്ന് രേഖപ്പെടുത്തുക, കാരണം പരിശോധനാ റൂട്ടും മറ്റേതൊരു CA പോലെ പുതുക്കപ്പെടുന്നു.

സർട്ടിഫിക്കറ്റിന് മുൻപേ ഹാൻഡ്ഷേക്ക് മരിക്കുമ്പോൾ

ഒന്നും അവതരിപ്പിക്കുന്നില്ലെങ്കിൽ, ട്രസ്റ്റ് സ്റ്റോറിലെ ഒരു മാറ്റവും സഹായിക്കില്ല. അതേ അഭ്യർത്ഥന ടണൽ ഓണും ഓഫും ആയി താരതമ്യം ചെയ്യുക, തുടർന്ന് openssl s_client -connect host:443 -servername host -showcerts ഉപയോഗിച്ച് ശൃംഖല നേരിട്ട് പരിശോധിക്കുക. VPN-ന് പുറത്ത് പൂർത്തിയായി അതിനുള്ളിൽ പുനഃസജ്ജമാകുന്ന കണക്ഷൻ ഇടനില ഉപകരണത്തിന്റെ നയ തീരുമാനമാണ്, പരിഹാരം ആ ഹോസ്റ്റിനുള്ള ഒഴിവാക്കലാണ്, മറ്റൊരു സർട്ടിഫിക്കറ്റല്ല. പാക്കേജ് രജിസ്ട്രിയോ API എൻഡ്പോയിന്റോ മാറ്റമില്ലാതെ കടക്കാൻ അഭ്യർത്ഥിക്കുക.

ഉപകരണം VPN ഒഴിവാക്കാൻ ടണൽ വിഭജിക്കുന്നത് ആ ട്രാഫിക്കിനുള്ള പരിശോധന ഒഴിവാക്കുന്നു, അത് നയം ലംഘിച്ചേക്കാം, ഉപകരണത്തെ വിശ്വസനീയമാക്കുന്നുമില്ല.

ഓരോ ഉപകരണത്തിനും ഫലം രേഖപ്പെടുത്തുക

ബൈനറി, അത് വായിക്കുന്ന ട്രസ്റ്റ് ഫയൽ, കളിയിലുള്ള എൻവയോൺമെന്റ് വേരിയബിൾ, അനുവദിച്ച ഒഴിവാക്കൽ എന്നിവ പട്ടികപ്പെടുത്തുന്ന ചെറിയ കുറിപ്പ് അടുത്ത വ്യക്തിക്ക് മുഴുവൻ രോഗനിർണ്ണയവും ലാഭിക്കുന്നു. കുറിപ്പ് ലാപ്ടോപ്പിന് പകരം ഉപകരണത്തിനനുസരിച്ച് സൂക്ഷിക്കുക, കാരണം മാറിയ കാര്യം ലാപ്ടോപ്പ് ആകുന്നത് അപൂർവമാണ്.

ടിക്കറ്റിൽ രണ്ട് വാക്യങ്ങൾ വെവ്വേറെ സൂക്ഷിക്കുക: ഞങ്ങൾ ഒരു നിർദ്ദിഷ്ട കോർപ്പറേറ്റ് റൂട്ട് ഇൻസ്റ്റാൾ ചെയ്തു, ഞങ്ങൾ പരിശോധന ഓഫ് ചെയ്തു. അവയിൽ ഒന്ന് മാത്രമാണ് പിന്തുണാ നടപടി.

അനുബന്ധ ലേഖനങ്ങൾ