La compilació de Go, la instal·lació de Composer i el client de Python funcionen a casa i tots fallen dins de la VPN de l’empresa. Aquest patró us parla del camí, no de l’aplicació. Alguna cosa al túnel ha canviat la cadena de certificats que veu el vostre procés, o ha reiniciat l’handshake abans que hi arribés cap cadena. Les dues falles semblen iguals en un terminal i necessiten respostes completament diferents.

Tres missatges, tres mecanismes

L’error x509 certificate signed by unknown authority vol dir que s’ha construït una cadena i que la seva arrel falta a el magatzem de confiança que fa servir aquest procés. L’error self-signed certificate in certificate chain normalment vol dir que un proxy d’inspecció ha respost amb el seu propi certificat, que és una cadena que el vostre entorn d’execució no reconeix. Un SSL EOF durant l’handshake vol dir que la connexió s’ha tancat abans que s’enviés cap certificat utilitzable, i això és un dispositiu intermediari que rebutja el ClientHello, no pas un problema de confiança.

Afegir una opció d’inseguretat fa desaparèixer els tres missatges mentre la intercepció continua al seu lloc, i elimina la comprovació que atraparia un atacant real.

Trobeu el paquet que el procés llegeix de debò

L’arrel corporativa instal·lada al magatzem de Windows arregla els navegadors i les aplicacions .NET que consulten el magatzem del sistema. No fa res per a una compilació dins d’un contenidor, que porta el seu propi paquet de CA, ni per a un procés de Python que fa servir certifi o un procés de Node que fa servir la seva llista inclosa. Go llegeix el conjunt del sistema de l’entorn on s’executa el binar, és a dir el contenidor, no el portàtil. Per tant, una sola màquina produeix alhora un navegador que funciona i una eina de compilació que falla.

Pregunteu a l’eina en lloc de suposar. python3 -c "import ssl; print(ssl.get_default_verify_paths())" imprimeix els fitxers que Python consultarà, i node -e "console.log(process.env.NODE_EXTRA_CA_CERTS)" mostra si ja hi ha una substitució definida. Per a un contenidor, executeu la mateixa comprovació dins de la imatge, perquè aquest és l’entorn que la compilació fa servir de debò.

Instal·leu una arrel allà on s’executa la compilació

Obteniu l’arrel d’inspecció d’IT com a fitxer PEM i verifiqueu-ne l’empremta per un canal separat abans de confiar-hi. A les imatges derivades de Debian, copieu-la a /usr/local/share/ca-certificates/ i executeu update-ca-certificates; les imatges de la família RHEL fan servir update-ca-trust després de deixar el fitxer a /etc/pki/ca-trust/source/anchors/. En una compilació de contenidor, afegiu aquests passos abans de l’ordre que falla perquè la capa quedi en memòria cau per sobre de la instal·lació de dependències.

Per a un devcontainer local, munteu el PEM i executeu la mateixa ordre d’actualització a l’inici en lloc de coure-la dins d’una imatge personal que ningú més no pot reproduir. Les eines que porten el seu propi paquet necessiten la seva pròpia substitució documentada: pip té un paràmetre de certificat, npm té un paràmetre cafile, i la majoria de les altres accepten les variables d’entorn estàndard.

Això no és el mateix que acceptar qualsevol certificat. Afegiu una arrel concreta, obtinguda de la part que fa la inspecció, a un entorn, i la verificació continua activa per a qualsevol altra cadena. Anoteu quin fitxer s’ha afegit i quan caduca, perquè una arrel d’inspecció es renova com qualsevol altre CA.

Quan l’handshake mor abans d’un certificat

Si no es presenta res, cap canvi al magatzem de confiança no ajudarà. Compareu la mateixa petició amb el túnel actiu i aturat, i després inspeccioneu la cadena directament amb openssl s_client -connect host:443 -servername host -showcerts. Una connexió que es completa fora de la VPN i es reinicia dins és una decisió de política del dispositiu intermediari, i el remei és una excepció per a aquest amfitrió, no un altre certificat. Demaneu que el registre de paquets o el punt final de l’API es deixin passar sense modificar.

Dividir el túnel perquè l’eina eviti la VPN estalvia la inspecció d’aquest trànsit, cosa que pot incomplir la política i no fa l’eina digna de confiança.

Anoteu el resultat per a cada eina

Una nota curta que llisti el binar, el fitxer de confiança que llegeix, la variable d’entorn en joc i l’excepció aprovada estalvia a la persona següent tot el diagnòstic. Manteniu la nota per eina i no per portàtil, perquè el portàtil poques vegades és el que ha canviat.

I manteniu dues frases separades al tiquet: hem instal·lat una arrel corporativa concreta, i hem desactivat la verificació. Només una de les dues és una acció de suport.

Articles relacionats