Centos 6 Fix para DST ROOT CA X3 Lets encrypt

¿Domingo por la mañana sin nada que hacer ? oh yeah, hora de depurar esa mierda

Hace tiempo que no escribo nada en este blog y no por que se me había olvidado escribir si no por que no había nada interesante que escribir, ya ven las ultimas entradas son de problemas que he resuelto en vesta, mysql etc etc

Pues hoy me ha dado por revisar el tema este de los centos 6, En centos 7 el problema esta parcheado con una actualizaciones y en todos los sistemas vigentes también pero centos 6 esta ya obsoleto y nadie sacara parche ( red hat a sacado uno para la versión extendida de redhat6 pero hay que pagar para obtenerlo ) las versiones de ubuntu 14 y las que no tienen soporte es sencillo solucionar el problema, basta con quitar DST Root CA X3.pem de la carga de los SSL, en el ca-certificates y todo como nuevo.

En centos 6 no se que pasa, esta jodido el tema, esta tan jodido que la gente habla de parchear openssl ya que la versión 1.0.1 gestiona un poco diferente los CA y como que no es capas de omitir el CA caducado y usar el nuevo.

Luego veo el tema de redhat y sacan actualización para todos los paquetes de NSS yo ya sospechaba que podía ir por ahí el tema pero no me quedo claro al final.

La solución al final parece que pasa por compilar openssl, cosa que parece sencilla, pero no vale con compilar openssl y renombrar el binario, si no se desinstala el anterior openssl no funciona.

El error ya sabemos cual es:

wget https://community.letsencrypt.org/
--2021-10-03 06:31:47--  https://community.letsencrypt.org/
Resolving community.letsencrypt.org... 64.71.144.202, 2602:fd3f:3:ff01::ca
Connecting to community.letsencrypt.org|64.71.144.202|:443... connected.
ERROR: cannot verify community.letsencrypt.org's certificate, issued by `/C=US/O=Let\'s Encrypt/CN=R3':
  Issued certificate has expired.
To connect to community.letsencrypt.org insecurely, use `--no-check-certificate'.

openssl version

OpenSSL 1.0.1e-fips 11 Feb 2013

¿Que he hecho para solucionarlo ?

El resumen es el siguiente, si sabes y te arriesgas podrás hacerlo bien, si no puedes cargarte el sistema, por eso no pongo un paso a paso.. que luego la gente va copia y pega, se rompe todo, no tienen backup y la culpa es mia :S

Quitar openssl algo así como rpm -e –nodeps

( todo te deja de funcionar, curl, yum, php, apache, nginx, wget etc )

Y luego compilar openssl en el sistema

# openssl version
OpenSSL 1.0.2u 20 Dec 2019

Tengo que decir que tengo que volver a hacerlo todo, el parche puedo confirmar que funciona, pero las librerias y todo quedo un poco desordenado ya que no use los prefix adecuados y todo se me instalado en /usr/local/ssl/ apesar de que algunos prefix si los cambie pero tuve que crear enlaces simbolicos a muchas librerias, también tuve que crear un nuevo cert.pem en /usr/local/ssl/cert.pem esto no fue complicado, he tomado el cert.pem que sacaron para centos 7 y listo, pero es lo que digo, sin poner bien los prefix, sin recompilar ca-certificates y demás no queda todo fino, pero queda funcional.

# wget https://community.letsencrypt.org/
wget: /usr/lib64/libcrypto.so.10: no version information available (required by wget)
wget: /usr/lib64/libssl.so.10: no version information available (required by wget)
--2021-10-03 12:37:47-- https://community.letsencrypt.org/
Resolving community.letsencrypt.org... 64.71.144.202, 2602:fd3f:3:ff01::ca
Connecting to community.letsencrypt.org|64.71.144.202|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `index.html.1'

[ <=> ] 84,831 506K/s in 0.2s

2021-10-03 12:37:48 (506 KB/s) – `index.html.1′ saved [84831]


Luego están los guarnigs que hay que quitar de wget

/usr/lib64/libcrypto.so.10: no version information available (required by wget)

Y otras cosas…

Por lo tanto, es posible parchear el problema actualizando openssl ?
Si es posible.
Vale la pena ?
Pues depende.. ya vez que yo en un rato de domingueo he parcheado parte del problema, pero si luego usas cpanel, plesk o cualquier otra cosa tendrás que hacerlo mejor, parchear más librerias, poner mejor las rutas y solucionar otros problemas que vengan luego de actualizar openssl
OJO que no es solo compilar openssl, hay que quitar el Openssl que viene con centos 6, esto implica que deje de funcionar todo lo que requiere openssl, yum, curl, wget, php y todo en general

Así que realmente no es un problema grande si tienes un centos limpio y lo quitas con rpm –nodeps

si no luego ver que todo funcione bien con todas las librerías que requieren

Habría que ver si parcheando por otro lado NSS solucionará el problema, eso ya lo miraré si tengo tiempo, me conformo con haber encontrado parte de la solución cambiando openssl por si tengo que parchear algún servidor de forma urgente, ya más adelante si tengo ganas y tiempo lo volveré a intentar, crearé un RPM y listo a desplegar en todos los servidores.