Erros de TLS só na VPN corporativa: arranxe o almacén de confianza correcto
A mesma ferramenta, o mesmo portátil, só a VPN rompe TLS. Lea a mensaxe, atope o paquete de CA que le o binario e engada unha raíz en lugar de desactivar as comprobacións.
A compilación de Go, a instalación de Composer e o cliente de Python funcionan na casa e todos fallan dentro da VPN da empresa. Ese patrón fálalle do camiño, non da aplicación. Algo no túnel cambiou a cadea de certificados que ve o seu proceso, ou reiniciou o handshake antes de que chegase ningunha cadea. Os dous fallos parécense nunha terminal e esixen respostas completamente distintas.
Tres mensaxes, tres mecanismos
O erro x509 certificate signed by unknown authority significa que se construíu unha cadea e que a súa raíz falta en o almacén de confianza que usa ese proceso. O erro self-signed certificate in certificate chain normalmente significa que un proxy de inspección respondeu co seu propio certificado, que é unha cadea que o seu contorno de execución non recoñece. Un SSL EOF durante o handshake significa que a conexión se pechou antes de que se enviase algún certificado utilizábel, e iso é un dispositivo intermedio que rexeita o ClientHello, non un problema de confianza en absoluto.
Engadir unha opción de inseguridade fai desaparecer as tres mensaxes mentres a interceptación segue no seu sitio, e elimina a comprobación que atraparía un atacante real.
Atope o paquete que o proceso le de verdade
A raíz corporativa instalada no almacén de Windows arranxa os navegadores e as aplicacións .NET que consultan o almacén do sistema. Non fai nada por unha compilación que se executa dentro dun contedor, que leva o seu propio paquete de CA, nin por un proceso de Python que usa certifi ou un proceso de Node que usa a súa lista incluída. Go le o conxunto do sistema do contorno no que se executa o binario, é dicir, o contedor e non o portátil. Por iso unha soa máquina produce á vez un navegador que funciona e unha ferramenta de compilación que falla.
Pregunte á ferramenta en lugar de supoñer. python3 -c "import ssl; print(ssl.get_default_verify_paths())" imprime os ficheiros que Python consultará, e node -e "console.log(process.env.NODE_EXTRA_CA_CERTS)" mostra se xa hai unha substitución definida. Para un contedor, execute a mesma comprobación dentro da imaxe, porque ese é o contorno que a compilación usa de verdade.
Instale unha raíz onde se executa a compilación
Obteña a raíz de inspección de TI como ficheiro PEM e verifique a súa impresión dixital por unha canle aparte antes de confiar nela. Nas imaxes derivadas de Debian, cópiea en /usr/local/share/ca-certificates/ e execute update-ca-certificates; as imaxes da familia RHEL usan update-ca-trust despois de deixar o ficheiro en /etc/pki/ca-trust/source/anchors/. Nunha compilación de contedor, engada eses pasos antes do comando que falla para que a capa quede na caché por riba da instalación de dependencias.
Para un devcontainer local, monte o PEM e execute o mesmo comando de actualización ao arrincar en lugar de cociñalo nunha imaxe persoal que ninguén máis pode reproducir. As ferramentas que traen o seu propio paquete necesitan a súa propia substitución documentada: pip ten un axuste de certificado, npm ten un axuste cafile, e a maioría das demais aceptan as variables de contorno estándar.
Isto non é o mesmo que aceptar calquera certificado. Vostede engade unha raíz concreta, obtida da parte que fai a inspección, a un contorno, e a verificación segue activa para calquera outra cadea. Anote que ficheiro se engadiu e cando caduca, porque unha raíz de inspección se renova coma calquera outra CA.
Cando o handshake morre antes dun certificado
Se non se presenta nada, ningún cambio no almacén de confianza axudará. Compare a mesma petición co túnel activo e inactivo, e despois inspeccione a cadea directamente con openssl s_client -connect host:443 -servername host -showcerts. Unha conexión que se completa fóra da VPN e se reinicia dentro é unha decisión de política do dispositivo intermedio, e o remedio é unha excepción para ese host, non outro certificado. Pida que o rexistro de paquetes ou o punto de conexión da API pasen sen modificar.
Dividir o túnel para que a ferramenta evite a VPN aforra a inspección dese tráfico, o que pode infrinxir a política e non fai que a ferramenta sexa fiable.
Anote o resultado por ferramenta
Unha nota breve que enumere o binario, o ficheiro de confianza que le, a variable de contorno en xogo e a excepción aprobada aforra á seguinte persoa todo o diagnóstico. Manteña a nota por ferramenta e non por portátil, porque o portátil raramente é o que cambiou.
E manteña dúas frases separadas no tícket: instalamos unha raíz corporativa concreta, e desactivamos a verificación. Só unha das dúas é unha acción de soporte.