Go build, Composer instalacija i Python klijent rade kod kuće i svi padaju unutar korporativne VPN mreže. Taj obrazac govori o putu, a ne o aplikaciji. Nešto na tunelu promenilo je lanac sertifikata koji vaš proces vidi ili je resetovalo rukovanje pre nego što je lanac uopšte stigao. Dve greške u terminalu izgledaju slično i traže sasvim različite reakcije.

Tri poruke, tri mehanizma

Greška x509 certificate signed by unknown authority znači da je lanac izgrađen i da njegov koren nedostaje u spremištu poverenja koje taj proces koristi. Greška self-signed certificate in certificate chain obično znači da je inspekcijski proksi odgovorio sopstvenim sertifikatom, a to je lanac koji vaše okruženje ne prepoznaje. SSL EOF tokom rukovanja znači da je veza zatvorena pre nego što je poslat ijedan upotrebljiv sertifikat, i to je posrednički uređaj koji odbija ClientHello, a ne problem sa poverenjem uopšte.

Dodavanje zastavice za nesiguran rad čini da sve tri poruke nestanu, a presretanje ostaje na mestu, i uklanja proveru koja bi uhvatila stvarnog napadača.

Pronađite paket koji proces zaista čita

Korporativni koren instaliran u Windows spremištu popravlja pregledače i .NET aplikacije koje pregledaju sistemsko spremište. Ne čini ništa za build koji se izvodi u kontejneru, koji nosi sopstveni CA paket, niti za Python proces koji koristi certifi ili Node proces koji koristi svoj ugrađeni spisak. Go čita sistemski skup okruženja u kojem binarni fajl radi, dakle kontejner, a ne laptop. Zato jedan računar istovremeno daje ispravan pregledač i neispravan alat za build.

Pitajte alat umesto da pretpostavljate. python3 -c "import ssl; print(ssl.get_default_verify_paths())" ispisuje fajlove koje će Python pregledati, a node -e "console.log(process.env.NODE_EXTRA_CA_CERTS)" pokazuje da li je neko nadjačavanje već postavljeno. Za kontejner pokrenite istu proveru unutar slike, jer je to okruženje koje build zaista koristi.

Instalirajte jedan koren tamo gde build radi

Nabavite inspekcijski koren od IT-a kao PEM fajl i proverite njegov otisak kroz odvojeni kanal pre nego što mu verujete. Na slikama zasnovanim na Debianu kopirajte ga u /usr/local/share/ca-certificates/ i pokrenite update-ca-certificates; slike iz familije RHEL koriste update-ca-trust nakon što fajl smeste u /etc/pki/ca-trust/source/anchors/. U kontejnerskom buildu dodajte te korake pre naredbe koja pada, da bi se sloj keširao iznad instalacije zavisnosti.

Za lokalni devcontainer montirajte PEM i pokrenite istu naredbu za ažuriranje pri pokretanju, umesto da je zapečete u ličnu sliku koju niko drugi ne može reprodukovati. Alati koji nose sopstveni paket trebaju sopstveno dokumentovano nadjačavanje: pip ima postavku za sertifikat, npm ima postavku cafile, a većina ostalih prihvata standardne promenljive okruženja.

To nije isto kao prihvatanje bilo kog sertifikata. Dodajete jedan određeni koren, dobijen od strane koja vrši inspekciju, u jedno okruženje, a provera ostaje uključena za svaki drugi lanac. Zapišite koji je fajl dodat i kada ističe, jer se inspekcijski koren obnavlja kao i svaki drugi CA.

Kada rukovanje umre pre sertifikata

Ako se ništa ne predstavi, nikakva promena spremišta poverenja neće pomoći. Uporedite isti zahtev sa uključenim i isključenim tunelom, pa pregledajte lanac direktno pomoću openssl s_client -connect host:443 -servername host -showcerts. Veza koja se završi izvan VPN-a i resetuje unutar njega je politička odluka posredničkog uređaja, a lek je izuzetak za tog hosta, a ne još jedan sertifikat. Zatražite da se registar paketa ili API krajnja tačka propuste bez izmena.

Deljenje tunela tako da alat zaobiđe VPN izbegava inspekciju tog saobraćaja, što može kršiti politiku i ne čini alat pouzdanim.

Zapišite ishod za svaki alat

Kratka beleška koja navodi binarni fajl, fajl poverenja koji čita, promenljivu okruženja u igri i odobreni izuzetak poštedeće sledeću osobu cele dijagnostike. Držite belešku po alatu, a ne po laptopu, jer je laptop retko ono što se promenilo.

I držite dve rečenice odvojeno u tiketu: instalirali smo određeni korporativni koren i isključili smo proveru. Samo je jedna od toga radnja podrške.

Povezani članci