Tecnología · GUÍA PRÁCTICA
¿Error 77 de curl? Demuestra qué archivo o directorio de CA falló antes de sustituir certificados
El error 77 significa que curl no pudo leer la ubicación de certificados CA seleccionada. Identifica el binario, backend TLS, anulación y ruta efectiva; prueba recorrido, bytes y estructura antes de reparar una sola entrada y repetir sin modo insecure.

El error 77 de curl es un fallo al cargar el almacén de confianza local, no una prueba de que el certificado del servidor remoto sea malo. La referencia oficial lo limita a la lectura de la ubicación del certificado CA SSL.
No empieces con --insecure, chmod 777 ni un paquete descargado al azar. Demuestra primero qué curl y backend TLS se ejecutaron, qué archivo o directorio eligieron y por qué no puede cargarse esa ubicación.
1. Captura el entorno exacto que falla
Registra la ruta del ejecutable, versión de curl y backend TLS, comando sin secretos, código de salida, directorio de trabajo, identidad de usuario o servicio, imagen del contenedor y wrapper. curl de shell, una extensión PHP, un binding Python y libcurl integrado pueden usar compilaciones y configuraciones distintas.
Guarda la línea completa del error y el inicio detallado, eliminando credenciales. No publiques Authorization, Cookie, consultas firmadas, claves de cliente ni hosts internos. El CAfile y CApath impresos por el proceso que falla son evidencia, no recomendaciones.
2. Resuelve la precedencia de opciones y entorno
Enumera --cacert o --capath explícitos, configuración de la aplicación, CURL_CA_BUNDLE, SSL_CERT_FILE y SSL_CERT_DIR, y compáralos con el valor compilado de la build real. Comprueba dentro del mismo servicio, contenedor o paso CI; una shell interactiva puede tener otro entorno.
No cambies nada todavía. Anota la entrada elegida y su origen: opción, wrapper, variable, almacén nativo o valor compilado. Si dos capas discrepan, elimina solo la anulación no intencionada y ejecuta una solicitud controlada.
3. Demuestra recorrido e identidad del archivo
Como el usuario que falla, inspecciona cada componente y el objeto final. Un archivo legible no basta si un padre no permite atravesarlo, un enlace sale del sandbox, falta un bind mount o una política bloquea el destino. Registra ruta resuelta, propietario, modo, tamaño, hash y límite de montaje o contenedor.
No uses chmod 777 como atajo. Amplía permisos sin reparar un montaje ausente, paquete vacío, tipo incorrecto, PEM malformado o denegación del sandbox. Tras localizar el límite, restaura propiedad y acceso mínimos.
4. Valida la estructura de CAfile o CApath
Para CAfile, descarta un directorio, archivo PKCS#12, fichero de cero bytes o HTML disfrazado de paquete. OpenSSL espera bloques PEM y procesa el archivo al cargar ubicaciones de verificación. Analiza una copia antes de sustituir un paquete gestionado por el sistema.
Para CApath con OpenSSL, los certificados necesitan la disposición hash. Ejecuta la herramienta rehash apropiada sobre el directorio previsto y revisa los enlaces. Un directorio lleno de PEM sin nombres requeridos puede no aportar certificados cuando se soliciten.
5. Repara una capa y cierra con una prueba segura
Repara la causa estrecha: elimina una anulación obsoleta, restaura el paquete gestionado, corrige el montaje, sustituye un artefacto vacío desde la distribución confiable, arregla PEM o reconstruye el directorio hash. Conserva archivo anterior y registros si investigas corrupción o construcción de imagen.
Repite con el mismo entorno y destino, sin --insecure. Exige salida 0, TLS verificado, fuente CA prevista y ningún fallback inesperado. Prueba después el wrapper o servicio real y registra ruta corregida, propietario, bytes, hash y origen de configuración.
