A Go-fordítás, a Composer-telepítés és a Python-kliens otthon mind működik, a vállalati VPN-en belül pedig mind elhasal. Ez a minta az útvonalról szól, nem az alkalmazásról. Valami az alagúton megváltoztatta a tanúsítványláncot, amelyet a folyamat lát, vagy alaphelyzetbe állította a kézfogást, mielőtt egyáltalán lánc érkezett volna. A két hiba a terminálban hasonlónak tűnik, és teljesen eltérő válaszokat kíván.

Három üzenet, három mechanizmus

Az x509 certificate signed by unknown authority hiba azt jelenti, hogy felépült egy lánc, és a gyökere hiányzik abból a tanúsítványtárból, amelyet az a folyamat használ. A self-signed certificate in certificate chain hiba általában azt jelenti, hogy egy vizsgáló proxy a saját tanúsítványával válaszolt, ez pedig olyan lánc, amelyet a futtatókörnyezete nem ismer fel. Az SSL EOF a kézfogás közben azt jelenti, hogy a kapcsolat bezárult, mielőtt bármilyen használható tanúsítvány elküldésre került volna, és ez egy köztes eszköz, amely elutasítja a ClientHello-t, nem pedig tanúsítványprobléma.

Egy nem biztonságos módot jelző kapcsoló hozzáadására mindhárom üzenet eltűnik, miközben az elfogás a helyén marad, és eltávolítja azt az ellenőrzést, amely egy valódi támadót elkapna.

Keresse meg a csomagot, amelyet a folyamat ténylegesen olvas

A Windows tárolójába telepített vállalati gyökér kijavítja a rendszertárat használó böngészőket és .NET-alkalmazásokat. Semmit nem tesz egy konténeren belül futó fordításhoz, amely saját CA-csomagot hordoz, és semmit egy certifit használó Python-folyamathoz vagy a beépített listáját használó Node-folyamathoz sem. A Go annak a környezetnek a rendszerkészletét olvassa, amelyben a bináris fut, tehát a konténerét, nem a laptopét. Egy gép ezért egyszerre ad működő böngészőt és elhasaló fordítóeszközt.

Kérdezze meg az eszközt ahelyett, hogy feltételezne. A python3 -c "import ssl; print(ssl.get_default_verify_paths())" kiprinteli azokat a fájlokat, amelyeket a Python megvizsgál, a node -e "console.log(process.env.NODE_EXTRA_CA_CERTS)" pedig megmutatja, hogy be van-e már állítva felülírás. Konténer esetén ugyanezt az ellenőrzést futtassa a lemezképen belül, mert a fordítás valójában azt a környezetet használja.

Telepítsen egy gyökeret ott, ahol a fordítás fut

Szerezze be a vizsgálati gyökeret az IT-tól PEM-fájlként, és ellenőrizze az ujjlenyomatát külön csatornán, mielőtt megbízna benne. A Debian-alapú lemezképeken másolja a /usr/local/share/ca-certificates/ könyvtárba, és futtassa az update-ca-certificates parancsot; az RHEL-család lemezképei az update-ca-trust parancsot használják, miután a fájlt a /etc/pki/ca-trust/source/anchors/ könyvtárba helyezték. Konténeres fordításnál adja hozzá ezeket a lépéseket a hibát adó parancs elé, hogy a réteg a függőségek telepítése fölé kerüljön a gyorsítótárba.

Helyi devcontainer esetén csatolja be a PEM-fájlt, és indításkor futtassa ugyanazt a frissítő parancsot, ahelyett hogy belebélyegezné egy személyes lemezképbe, amelyet senki más nem tud reprodukálni. A saját csomagot hozó eszközöknek saját dokumentált felülírásra van szükségük: a pipnek van tanúsítvány-beállítása, az npm-nek van cafile-beállítása, a legtöbb más pedig elfogadja a szokásos környezeti változókat.

Ez nem ugyanaz, mint bármilyen tanúsítvány elfogadása. Egy meghatározott gyökeret ad hozzá, amelyet a vizsgálatot végző féltől kapott, egy környezethez, és az ellenőrzés minden más láncnál bekapcsolva marad. Jegyezze fel, melyik fájlt adta hozzá és mikor jár le, mert a vizsgálati gyökér minden más CA-hoz hasonlóan megújul.

Amikor a kézfogás meghal egy tanúsítvány előtt

Ha semmit nem mutatnak be, semmilyen változtatás a tanúsítványtáron nem segít. Hasonlítsa össze ugyanazt a kérést nyitott és zárt alagúttal, majd vizsgálja meg a láncot közvetlenül az openssl s_client -connect host:443 -servername host -showcerts paranccsal. Az a kapcsolat, amely a VPN-en kívül létrejön és azon belül alaphelyzetbe áll, a köztes eszköz szabályozási döntése, és az orvosság az adott gép engedélyezése, nem egy újabb tanúsítvány. Kérje, hogy a csomagregiszter vagy az API végpont változtatás nélkül haladjon át.

Az alagút felosztása, hogy az eszköz megkerülje a VPN-t, elkerüli az adott forgalom vizsgálatát, ami sértheti a szabályzatot, és nem teszi megbízhatóvá az eszközt.

Jegyezze fel az eredményt eszközönként

Egy rövid feljegyzés, amely felsorolja a binárist, az általa olvasott tanúsítványfájlt, a játékban lévő környezeti változót és a jóváhagyott kivételt, megspórolja a következő embernek az egész diagnózist. Tartsa a feljegyzést eszközönként, nem laptoponként, mert a laptop ritkán az, ami megváltozott.

És tartson két mondatot külön a jegyben: telepítettünk egy meghatározott vállalati gyökeret, és kikapcsoltuk az ellenőrzést. Csak az egyikük támogatási művelet.

Kapcsolódó cikkek