Errores de TLS solo en la VPN corporativa: arregle el almacén de confianza correcto
La misma herramienta, el mismo portátil, solo la VPN rompe TLS. Lea el mensaje, encuentre el paquete de CA que lee el binario y añada una raíz en lugar de desactivar las comprobaciones.
La compilación de Go, la instalación de Composer y el cliente de Python funcionan en casa y todos fallan dentro de la VPN de la empresa. Ese patrón habla del camino, no de la aplicación. Algo en el túnel cambió la cadena de certificados que ve su proceso, o reinició el handshake antes de que llegara ninguna cadena. Los dos fallos se parecen en una terminal y exigen respuestas completamente distintas.
Tres mensajes, tres mecanismos
El error x509 certificate signed by unknown authority significa que se construyó una cadena y que su raíz falta en el almacén de confianza que usa ese proceso. El error self-signed certificate in certificate chain suele significar que un proxy de inspección respondió con su propio certificado, que es una cadena que su entorno de ejecución no reconoce. Un SSL EOF durante el handshake significa que la conexión se cerró antes de que se enviara algún certificado utilizable, y eso es un dispositivo intermedio que rechaza el ClientHello, no un problema de confianza en absoluto.
Añadir una opción de inseguridad hace desaparecer los tres mensajes mientras la interceptación sigue en su sitio, y elimina la comprobación que atraparía a un atacante real.
Encuentre el paquete que el proceso lee de verdad
La raíz corporativa instalada en el almacén de Windows arregla los navegadores y las aplicaciones .NET que consultan el almacén del sistema. No hace nada por una compilación que se ejecuta dentro de un contenedor, que lleva su propio paquete de CA, ni por un proceso de Python que usa certifi o un proceso de Node que usa su lista incluida. Go lee el conjunto del sistema del entorno en el que se ejecuta el binario, es decir, el contenedor y no el portátil. Por eso una sola máquina produce a la vez un navegador que funciona y una herramienta de compilación que falla.
Pregunte a la herramienta en lugar de suponer. python3 -c "import ssl; print(ssl.get_default_verify_paths())" imprime los archivos que Python consultará, y node -e "console.log(process.env.NODE_EXTRA_CA_CERTS)" muestra si ya hay una sustitución definida. Para un contenedor, ejecute la misma comprobación dentro de la imagen, porque ese es el entorno que la compilación usa de verdad.
Instale una raíz donde se ejecuta la compilación
Obtenga la raíz de inspección de TI como archivo PEM y verifique su huella por un canal aparte antes de confiar en ella. En imágenes derivadas de Debian, cópiela en /usr/local/share/ca-certificates/ y ejecute update-ca-certificates; las imágenes de la familia RHEL usan update-ca-trust después de dejar el archivo en /etc/pki/ca-trust/source/anchors/. En una compilación de contenedor, añada esos pasos antes del comando que falla para que la capa quede en caché por encima de la instalación de dependencias.
Para un devcontainer local, monte el PEM y ejecute el mismo comando de actualización al arrancar en lugar de hornearlo en una imagen personal que nadie más puede reproducir. Las herramientas que traen su propio paquete necesitan su propia sustitución documentada: pip tiene un ajuste de certificado, npm tiene un ajuste cafile, y la mayoría de las demás aceptan las variables de entorno estándar.
Esto no es lo mismo que aceptar cualquier certificado. Usted añade una raíz concreta, obtenida de la parte que hace la inspección, a un entorno, y la verificación sigue activa para cualquier otra cadena. Anote qué archivo se añadió y cuándo caduca, porque una raíz de inspección se renueva como cualquier otra CA.
Cuando el handshake muere antes de un certificado
Si no se presenta nada, ningún cambio en el almacén de confianza ayudará. Compare la misma petición con el túnel activo e inactivo, y después inspeccione la cadena directamente con openssl s_client -connect host:443 -servername host -showcerts. Una conexión que se completa fuera de la VPN y se reinicia dentro es una decisión de política del dispositivo intermedio, y el remedio es una excepción para ese host, no otro certificado. Pida que el registro de paquetes o el punto de conexión de la API pasen sin modificar.
Dividir el túnel para que la herramienta evite la VPN ahorra la inspección de ese tráfico, lo que puede infringir la política y no hace que la herramienta sea fiable.
Anote el resultado por herramienta
Una nota breve que enumere el binario, el archivo de confianza que lee, la variable de entorno en juego y la excepción aprobada ahorra a la siguiente persona todo el diagnóstico. Mantenga la nota por herramienta y no por portátil, porque el portátil rara vez es lo que ha cambiado.
Y mantenga dos frases separadas en el ticket: instalamos una raíz corporativa concreta, y desactivamos la verificación. Solo una de las dos es una acción de soporte.