Cuando ejecuta Copilot en un cliente Linux, puede ver errores de conexión que impiden que el servicio se autentique con los servidores de Microsoft. La causa raíz suele ser un paquete de certificados CA faltante o desactualizado en el sistema Linux. Copilot depende de certificados raíz de confianza para verificar la identidad de los puntos finales de Microsoft. Este artículo explica por qué falta el paquete y proporciona comandos paso a paso para restaurarlo.
El problema aparece como fallos de handshake SSL o advertencias de validación de certificados en los registros de Copilot. En muchas distribuciones de Linux, el paquete de certificados se almacena en un archivo o directorio específico. Si ese archivo se elimina, se corrompe o no se instala por defecto, Copilot no puede completar las conexiones TLS. La solución implica reinstalar el paquete de certificados CA correcto o actualizar manualmente el paquete.
Esta guía cubre tres familias comunes de Linux: Debian/Ubuntu, RHEL/CentOS y openSUSE. También aprenderá a verificar que el paquete esté presente y a probar la conexión después de aplicar la solución.
Conclusiones clave: Restaurar los certificados CA de Copilot en Linux
- paquete ca-certificates: Contiene los certificados raíz de confianza que Copilot utiliza para validar los puntos finales TLS de Microsoft. Reinstale este paquete para solucionar los errores de paquete faltante.
- comando update-ca-certificates: Regenera el archivo de paquete de certificados después de la instalación. Ejecute este comando para asegurarse de que el paquete esté actualizado.
- verificación con openssl s_client: Use este comando para verificar que la cadena de certificados para login.microsoftonline.com esté completa después de la solución.
Por qué falta el paquete de certificados CA en Linux
El paquete de certificados CA es un archivo que contiene las claves públicas de las autoridades de certificación de confianza. En Linux, este archivo se encuentra típicamente en /etc/ssl/certs/ca-certificates.crt en sistemas basados en Debian o en /etc/pki/tls/certs/ca-bundle.crt en sistemas basados en RHEL. Copilot y otros clientes TLS leen este archivo para verificar los certificados del servidor durante el handshake SSL.
El paquete puede faltar por varias razones:
- Eliminación del paquete: El paquete
ca-certificatesse desinstaló accidentalmente durante la limpieza del sistema. - Actualización corrupta: Una actualización fallida del sistema dejó el archivo de paquete vacío o incompleto.
- Instalación mínima: Algunas imágenes de contenedor o builds de servidor mínimos omiten el paquete de certificados CA por completo.
Cuando falta el paquete, Copilot no puede confiar en los servidores de Microsoft. El mensaje de error en el registro de Copilot dirá algo como certificate verify failed o unable to get local issuer certificate. La solución es instalar o reinstalar el paquete de certificados CA y regenerar el paquete.
Pasos para solucionar el paquete de certificados CA faltante
Los comandos exactos dependen de su distribución de Linux. Siga la sección correspondiente a su sistema.
Debian o Ubuntu
- Actualice la lista de paquetes
Abra una terminal y ejecutesudo apt updatepara actualizar la caché del repositorio. Esto asegura que obtenga la última versión del paquete ca-certificates. - Reinstale el paquete ca-certificates
Ejecutesudo apt install --reinstall ca-certificates. Este comando fuerza la reinstalación del paquete incluso si ya está presente. - Regenere el paquete
Ejecutesudo update-ca-certificates --fresh. Esto elimina el paquete antiguo y crea uno nuevo a partir de los certificados instalados en el sistema. - Verifique que el archivo de paquete exista
Compruebe que el archivo esté presente conls -l /etc/ssl/certs/ca-certificates.crt. El archivo debe ser un archivo regular con un tamaño mayor que cero.
RHEL, CentOS o Fedora
- Instale el paquete ca-certificates
Ejecutesudo yum install ca-certificatesosudo dnf install ca-certificatesdependiendo de su sistema. En RHEL 8 y posteriores, use dnf. - Actualice el paquete
Ejecutesudo update-ca-trust. Este comando procesa todos los certificados en el almacén de confianza y actualiza el archivo de paquete. - Confirme la ubicación del paquete
Verifique el archivo en/etc/pki/tls/certs/ca-bundle.crtusandols -l. El archivo debe existir y ser legible.
openSUSE o SUSE Linux Enterprise
- Actualice los metadatos del repositorio
Ejecutesudo zypper refreshpara obtener la información más reciente del paquete. - Instale o reinstale ca-certificates
Ejecutesudo zypper install --force ca-certificates. El indicador de fuerza asegura que el paquete se reinstale incluso si ya está presente. - Regenere el paquete
Ejecutesudo update-ca-certificates. En sistemas SUSE, este comando regenera el paquete a partir de los certificados instalados. - Compruebe el paquete
Verifique que el archivo en/etc/ssl/ca-bundle.pemexista y no esté vacío.
Si Copilot aún tiene problemas después de la solución principal
Copilot informa errores de certificado incluso después de reinstalar ca-certificates
Esto puede suceder si el reloj del sistema es incorrecto. La validación de certificados TLS depende de la hora precisa. Ejecute date para verificar la hora actual del sistema. Si es incorrecta, instale y configure NTP con sudo apt install ntp en Debian o sudo yum install ntp en RHEL, luego habilite el servicio. Después de sincronizar la hora, reinicie Copilot y pruebe la conexión.
Copilot no puede encontrar el archivo de paquete en la ruta esperada
Algunas versiones de Copilot buscan el paquete en una ruta personalizada. Verifique el archivo de configuración de Copilot, típicamente /etc/copilot/copilot.conf o ~/.copilot/config. Busque una línea como ca_bundle = /path/to/bundle.crt. Si la ruta apunta a un archivo inexistente, actualícela a la ruta correcta del paquete del sistema. Para Debian, use /etc/ssl/certs/ca-certificates.crt. Para RHEL, use /etc/pki/tls/certs/ca-bundle.crt.
Copilot funciona después de la solución pero falla después de una actualización del sistema
Las actualizaciones del sistema pueden sobrescribir o eliminar el paquete si el proceso de actualización se interrumpe. Ejecute el comando update-ca-certificates nuevamente después de cualquier actualización importante del sistema. También puede crear un trabajo cron que ejecute sudo update-ca-certificates --fresh semanalmente para mantener el paquete actualizado.
Copilot en Linux: Métodos de solución del paquete CA comparados
| Elemento | Debian / Ubuntu | RHEL / CentOS / Fedora |
|---|---|---|
| Nombre del paquete | ca-certificates | ca-certificates |
| Comando de instalación | sudo apt install –reinstall ca-certificates | sudo yum install ca-certificates |
| Comando de regeneración del paquete | sudo update-ca-certificates –fresh | sudo update-ca-trust |
| Ruta predeterminada del paquete | /etc/ssl/certs/ca-certificates.crt | /etc/pki/tls/certs/ca-bundle.crt |
| Comando de verificación | openssl s_client -connect login.microsoftonline.com:443 -CAfile /etc/ssl/certs/ca-certificates.crt | openssl s_client -connect login.microsoftonline.com:443 -CAfile /etc/pki/tls/certs/ca-bundle.crt |
Después de aplicar la solución, pruebe la conexión usando el comando openssl s_client que se muestra en la tabla. Una prueba exitosa devuelve una línea que dice Verify return code: 0 (ok). Si ve cualquier otro código de retorno, la cadena de certificados aún está incompleta. En ese caso, verifique que el paquete ca-certificates sea la última versión y que ningún firewall esté bloqueando el tráfico TLS saliente en el puerto 443.
Ahora puede reinstalar el paquete de certificados CA en su cliente Linux y restaurar la conectividad de Copilot. Use el comando update-ca-certificates después de cualquier actualización futura del sistema para evitar que el problema se repita. Para entornos automatizados, agregue el comando de regeneración a un temporizador systemd o un trabajo cron. Este paso proactivo asegura que Copilot siempre tenga acceso al conjunto actual de certificados raíz de confianza.