Saltar al contenido

El blog de Deska

Errores de certificado SSL: Guía de diagnóstico para agentes

Una guía técnica para resolver errores de certificado SSL al trabajar con entornos locales y agentes de IA para garantizar una conectividad segura.

10 min de lectura

El desarrollo de software en entornos modernos implica una interacción constante con protocolos cifrados. Cuando estos mecanismos de intercambio fallan, surgen errores de certificado SSL que pueden detener por completo tu flujo de trabajo. Estos problemas se vuelven particularmente complejos al integrar agentes de programación por IA en tu máquina local, ya que estas herramientas suelen interactuar con APIs remotas y proxies locales de forma simultánea. Comprender la causa raíz de un certificado inválido requiere un enfoque sistemático sobre el proceso de conexión, el almacén de confianza y la ruta de red.

La anatomía de un fallo de TLS

Un error de Seguridad de la Capa de Transporte (TLS) ocurre cuando un cliente no puede verificar la autenticidad de un servidor o cuando no se pueden negociar los parámetros de comunicación. Aunque coloquialmente se les llama errores de certificado SSL, la mayoría de los sistemas modernos utilizan TLS 1.2 o 1.3. El fallo suele ocurrir en una de tres etapas.

La primera etapa es la verificación de identidad. El cliente comprueba si el certificado presentado por el servidor fue firmado por una Autoridad de Certificación (CA) de confianza. Si la CA no está en el almacén de confianza local, la conexión se rechaza. La segunda etapa es la validez. Un certificado puede estar caducado, no haber sido activado aún o estar revocado. La tercera etapa es la discrepancia de nombre de host. Si accedes a un servicio mediante una IP específica pero el certificado fue emitido para un nombre de dominio, la discrepancia activa una alerta de seguridad.

El árbol de diagnóstico para agentes

Al trabajar con herramientas como Claude Code o Codex CLI, un error de SSL puede manifestarse en la terminal o en los registros del agente. Sigue este árbol lógico para aislar el problema.

1. Revisa el reloj del sistema

Parece algo básico, pero una cantidad significativa de errores de certificado SSL provienen de un desfase en el reloj. Si la hora de tu máquina local está significativamente adelantada o atrasada respecto a la del servidor, el certificado se percibirá como inválido. Verifica tu sincronización NTP antes de cambiar cualquier archivo de configuración.

2. Identifica el proxy o cortafuegos

Muchos entornos corporativos utilizan la Inspección Profunda de Paquetes (DPI) para monitorear el tráfico. Esto requiere que el cortafuegos intercepte el tráfico TLS presentando su propio certificado autofirmado. Si tu entorno de desarrollo no confía en la CA raíz corporativa, todas las solicitudes HTTPS fallarán.

3. Verifica la ruta del CA Bundle

Diversos entornos de ejecución como Node.js, Python y Go utilizan diferentes métodos para localizar sus almacenes de confianza. Incluso si tu navegador confía en un sitio, es posible que tu entorno de terminal no lo haga. A menudo necesitas apuntar tus variables de entorno, como NODE_EXTRA_CA_CERTS o REQUESTS_CA_BUNDLE, al archivo de certificado correcto.

Gestión de certificados en Deska

Al usar Deska, tu entorno de desarrollo sigue siendo local primero. Esto significa que la aplicación se apoya en el almacén de confianza de tu sistema operativo en lugar de un entorno cerrado propietario. Si ejecutas múltiples agentes de programación en paralelo usando paneles, cada agente podría tener su propia forma de gestionar TLS.

Dentro del espacio de trabajo de Deska, puedes abrir una terminal para ejecutar comandos de diagnóstico como openssl s_client -connect google.com:443. Debido a que Deska es una aplicación local-first, cualquier certificado que instales en tu máquina Mac, Windows o Linux será respetado por el navegador interno y los paneles del editor Monaco.

Tipo de problemaSíntomaSolución probable
AutofirmadoUNABLE_TO_VERIFY_LEAF_SIGNATUREAñadir CA raíz al almacén del sistema
CaducadoCERT_HAS_EXPIREDRenovar el certificado en el servidor
Nombre de hostERR_TLS_CERT_ALTNAME_INVALIDRevisar DNS o usar el SAN correcto
Cadena incompletaUnable to get local issuer certificateProveer la cadena completa con intermedios

SSL y los agentes de programación por IA

Los agentes de IA introducen una nueva capa de complejidad. Estos agentes, como OpenCode o Claude Code, a menudo necesitan comunicarse con proveedores de modelos mientras leen tu código local. Si utilizas una herramienta que requiere que los agentes se comuniquen a través de un relay o un proxy local, debes asegurar que el proceso del agente herede las variables de entorno correctas.

En Deska, el asistente Ask Deska puede ayudarte a depurar estas configuraciones. Puedes pedirle al asistente que revise tus variables de entorno o que ejecute un script para verificar la ruta de tu CA bundle. La ventaja del lienzo infinito es que puedes tener una terminal ejecutando un seguimiento de tus logs mientras otra terminal intenta una conexión, todo mientras mantienes la documentación abierta en un panel de navegador.

Soluciones comunes en CLI para problemas de SSL

La mayoría de los desarrolladores encuentran estos problemas en la línea de comandos. Aquí tienes las soluciones comunes para diferentes ecosistemas.

  • Para Node.js: Configura export NODE_EXTRA_CA_CERTS="/ruta/al/certificado.pem" en tu perfil de shell.
  • Para Python: Usa pip install pip-system-certs para forzar a Python a usar el almacén de confianza de Windows o macOS.
  • Para Git: Usa git config --global http.sslcainfo /ruta/al/certificado.pem. Evita configurar sslVerify a false, ya que crea un agujero de seguridad importante.

Si utilizas la aplicación mobile para monitorizar tu trabajo, recuerda que el relay seguro gestiona el cifrado por ti. Los dispositivos se emparejan directamente sin exponer puertos, lo que evita muchos problemas comunes de certificados relacionados con el redireccionamiento de puertos.

Resolución de problemas en entornos compartidos

Cuando se trabaja en equipo o en múltiples máquinas, mantener un entorno SSL consistente es difícil. Los desarrolladores suelen recurrir a ignorar los errores, lo cual es un hábito peligroso. En lugar de desactivar la seguridad, utiliza un espacio de trabajo gestionado que pueda estandarizar estas rutas. Puedes encontrar más detalles sobre cómo configurar tu espacio en la documentación de troubleshooting.

Si notas que tus agentes sufren tiempos de espera agotados o lanzan errores TLS constantemente, verifica si tu DNS local está resolviendo hacia un servicio que no está disponible. A veces, un error de SSL es solo una respuesta genérica para una conexión que fue terminada prematuramente por un balanceador de carga.

FAQ: Preguntas frecuentes

¿Cómo corrijo el error: self signed certificate in certificate chain?

Este error ocurre generalmente cuando estás detrás de un proxy corporativo que intercepta el tráfico. Debes obtener el certificado raíz de la corporación y añadirlo a tus variables de entorno o al llavero del sistema. En entornos Node.js, puedes usar la variable NODE_EXTRA_CA_CERTS para apuntar al archivo .pem.

¿Por qué mi agente de programación no puede conectarse a la API del LLM?

Esto suele deberse a que el agente no tiene acceso a los certificados raíz del sistema o está bloqueado por un cortafuegos local. Asegúrate de que tus claves API sean válidas y que tu red permita el tráfico saliente al dominio del proveedor. Si usas Deska con tus propias llaves, verifícalas en el panel de configuración.

¿Puedo usar certificados con herramientas de desarrollo local-first?

Sí, las herramientas local-first como Deska operan en tu máquina y utilizan tu propia pila de red. Cualquier certificado instalado a nivel de sistema operativo es válido dentro del espacio de trabajo. Esto es más sencillo que gestionar certificados dentro de un contenedor en la nube o una máquina virtual remota.

Comienza con un espacio de trabajo seguro

Evitar los errores de certificado SSL requiere el conjunto adecuado de herramientas y un proceso de diagnóstico claro. Al utilizar un espacio de trabajo que respeta tu entorno local y ofrece visibilidad sobre los procesos de tus agentes, puedes reducir el tiempo dedicado a la configuración de red y concentrarte en escribir código.

Deska ofrece una aplicación de escritorio gratuita para Mac, Windows y Linux que te permite ejecutar terminales, editores y agentes en un entorno integrado. Puedes descargar la aplicación para comenzar a construir tu propio lienzo de desarrollo seguro y alojado localmente hoy mismo. Las funciones profesionales y la inferencia gestionada están disponibles, pero el espacio de trabajo principal sigue siendo gratuito para todos los usuarios.