Go-bygget, Composer-installasjonen og Python-klienten fungerer alle hjemme og feiler alle inne i bedriftens VPN. Det mønsteret forteller deg om veien, ikke om programmet. Noe på tunnelen endret sertifikatkjeden prosessen din ser, eller nullstilte håndtrykket før noen kjede kom frem i det hele tatt. De to feilene ser like ut i en terminal og krever helt forskjellige svar.

Tre meldinger, tre mekanismer

Feilen x509 certificate signed by unknown authority betyr at en kjede ble bygget og at roten mangler i tillitslageret som den prosessen bruker. Feilen self-signed certificate in certificate chain betyr vanligvis at en inspeksjonsproxy svarte med sitt eget sertifikat, og det er en kjede kjøretidsmiljøet ditt ikke kjenner igjen. En SSL EOF under håndtrykket betyr at forbindelsen ble lukket før noe brukbart sertifikat ble sendt, og det er en mellomliggende boks som avviser ClientHello, ikke et tillitsproblem i det hele tatt.

Å legge til et flagg for usikker tilstand får alle tre meldingene til å forsvinne mens avlyttingen blir stående, og det fjerner kontrollen som ville fanget en ekte angriper.

Finn pakken prosessen faktisk leser

Bedriftsroten som er installert i Windows-lageret, reparerer nettlesere og .NET-programmer som slår opp i systemlageret. Den gjør ingenting for et bygg som kjører i en container, som bærer sin egen CA-pakke, og ingenting for en Python-prosess med certifi eller en Node-prosess med sin medfølgende liste. Go leser systempoolen i miljøet binæren kjører i, altså containeren og ikke den bærbare PC-en. Én maskin gir derfor samtidig en nettleser som virker og et byggeverktøy som feiler.

Spør verktøyet i stedet for å anta. python3 -c "import ssl; print(ssl.get_default_verify_paths())" skriver ut filene Python vil slå opp i, og node -e "console.log(process.env.NODE_EXTRA_CA_CERTS)" viser om en overstyring allerede er satt. For en container, kjør den samme kontrollen inne i imaget, fordi det er miljøet bygget faktisk bruker.

Installer én rot der bygget kjører

Hent inspeksjonsroten fra IT som en PEM-fil, og verifiser fingeravtrykket gjennom en separat kanal før du stoler på den. På Debian-baserte images kopierer du den til /usr/local/share/ca-certificates/ og kjører update-ca-certificates; images fra RHEL-familien bruker update-ca-trust etter at filen er lagt i /etc/pki/ca-trust/source/anchors/. I et containerbygg legger du til disse trinnene før kommandoen som feiler, slik at laget bufres over installasjonen av avhengighetene.

For en lokal devcontainer, monter PEM-filen og kjør den samme oppdateringskommandoen ved oppstart i stedet for å bake den inn i et personlig image som ingen andre kan gjenskape. Verktøy som leverer sin egen pakke, trenger sin egen dokumenterte overstyring: pip har en sertifikatinnstilling, npm har en cafile-innstilling, og de fleste andre godtar standard miljøvariabler.

Dette er ikke det samme som å godta ethvert sertifikat. Du legger til én bestemt rot, hentet fra parten som utfører inspeksjonen, i ett miljø, og verifiseringen forblir på for hver annen kjede. Noter hvilken fil som ble lagt til og når den utløper, for en inspeksjonsrot fornyes som enhver annen CA.

Når håndtrykket dør før et sertifikat

Hvis ingenting presenteres, hjelper ingen endring i tillitslageret. Sammenlign den samme forespørselen med tunnelen oppe og nede, og undersøk deretter kjeden direkte med openssl s_client -connect host:443 -servername host -showcerts. En forbindelse som fullføres utenfor VPN-en og nullstilles inne i den, er en policybeslutning fra den mellomliggende boksen, og botemidlet er et unntak for den verten, ikke enda et sertifikat. Be om at pakkeregisteret eller API-endepunktet slippes gjennom uendret.

Å splitte tunnelen slik at verktøyet omgår VPN-en, unngår inspeksjon for den trafikken, noe som kan bryte policyen og ikke gjør verktøyet pålitelig.

Skriv ned resultatet per verktøy

Et kort notat som lister opp binæren, tillitsfilen den leser, miljøvariabelen som er i spill og unntaket som er godkjent, sparer neste person for hele diagnosen. Hold notatet per verktøy i stedet for per bærbar PC, for den bærbare PC-en er sjelden det som ble endret.

Og hold to setninger adskilt i saken: vi installerte en bestemt bedriftsrot, og vi slo av verifiseringen. Bare én av dem er en støttehandling.

Relaterte artikler