Errores de certificados en curl y OpenSSL al actualizar openSUSE Tumbleweed
Al intentar actualizar openSUSE Tumbleweed curl me daba una serie de errores de certificados al querer acceder a los repositorios y no me dejaba actualizar el sistema
Hoy me ha dado por encender mi viejo portátil que desde que compré mi Slimbook Exkalibur KDE Edition está durmiendo el sueño de los justos para actualizar el sistema openSUSE Tumbleweed que todavía reside en sus entrañas digitales.
Así que esperé a que terminara de iniciar el sistema (de verdad tardaba tanto antes) y abrí una terminal para correr un sudo zypper dup o zdup que es como tengo configurado un alias… y error. No podía acceder a ciertos repositorios y debido a eso no actualizaba el sistema ¿qué hacer?
Los errores en cuestión estaban relacionados con certificados a la hora de que curl u openSSH accedan a las url de los repositorios configurados para actualizar el sistema. En concreto algo así:
El repositorio 'Packman' no es válido.
[Packman|https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/] No se pudieron recuperar los nuevos metadatos del repositorio.
Historial:
- [|] Error al intentar leer https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/
- Error de descarga (curl) para https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/content:
Código de error: The peer certificate could not be verified Curl error (60)
Mensaje de error: SSL certificate OpenSSL verify result: unable to get local issuer certificate (20)
Lo primero comprobar que los servidores donde están los repositorios no están caidos, accediendo a las url desde el navegador. Todo parece estar Ok. Además comprobaba entre los dos portátiles que mi equipo nuevo podía acceder y el viejo portátil no.
Pero lo que parece que que los certificados SSL no son válidos o que curl no confía en ellos. Echando un vistazo (he perdido los enlaces…) veo que una solución para tratar de solucionarlo puede ser actualizar los certificados del sistema.
Para eso primero instalamos un par de paquetes que contienen certificados actualizados mediante:
sudo zypper in ca-certificates ca-certificates-mozilla
Y los actualizamos mediante:
sudo update-ca-certificates
Que reconstruye los certificados que se guardan en /etc/ssl/certs. Cuando terminó, volví a probar la actualización del sistema y esta vez todo funcionó sin problemas y pude actualizar todos los paquetes a sus nuevas versiones.
El problema es que hacía mucho tiempo que no arrancaba ese equipo por lo que sus certificados estaban desfasados y no podía acceder a los repositorios. En sistemas que utilizamos muy a menudo, esos certificados se renuevan automáticamente al actualizar el sistema por lo que no sería necesario ejecutar nada de esto.
Pero nunca está de más saberlo para otra vez ¿Lo conocías? Ahora mismo está actualizando más de 3.300 paquetes de software, entre ellos paquetes tan importantes como el kernel o del escritorio Plasma a nuevas versiones.
Discussion in the ATmosphere