actualización de openssl | certificado de validación fallida

actualización de openssl | certificado de validación fallida

Estoy trabajando en una máquina CentOS7 y estoy intentando actualizar la versión 1.0.2k -> 1.1.0l de openssl de mi máquina. Parece que el proceso de protocolo de enlace con mi servidor (que no cambió) falla después de la actualización y estoy tratando de descubrir la causa.

Ejecutando el siguiente comando con ambas versiones de openssl:

openssl s_client -showcerts -connect servidor:puerto

Resultó con un error con el más nuevo (si proporciono la validación -CAfile funciona con ambos). Una diferencia del resultado:

Antiguo 1.0.2k (apretón de manos exitoso):

Clave temporal del servidor: ECDH, P-256, 256 bits Nuevo, TLSv1/SSLv3, el cifrado es ECDHE-RSA-AES128-GCM-SHA256 Nuevo 1.1.0l (falla el protocolo de enlace):

Clave temporal del servidor: X25519, 253 bits Nuevo, TLSv1.2, el cifrado es ECDHE-RSA-AES128-GCM-SHA256 Verifique el código de retorno: 20 (no se puede obtener el certificado del emisor local) Agradecería que me ayudaran a comprender la diferencia y por qué son diferentes.

Para tu información, comencé una amenaza similar aquí: https://stackoverflow.com/questions/68763253/openssl-upgrade-fail-validating-certificate?noredirect=1#comment121583146_68763253 sin mucha suerte.

Gracias :)

Respuesta1

En Centos 7 también puedes solucionar este problema con los siguientes comandos:

#Prepare to compile
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y
yum groupinstall -y "Development Tools" "Development Libraries"

#Build from source
cd /usr/src
# --no-check-certificate because of that issue, your system will not validate letsencrypt certificate at openssl.org until finish update
wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1l.tar.gz
tar -zxf openssl-1.1.1l.tar.gz
cd openssl-1.1.1l
./config
make
make install

yum install ca-certificates -y 

Respuesta2

Para referencia futura, agregue la solución aquí.

Una vez que comience a trabajar con la versión de openssl > 1.0.2kenEn máquinas centos7, parece haber un cambio de comportamiento en la ruta de resolución raíz.

Openssl revisa una lista predefinida de ubicaciones de almacenamiento de certificados; sin embargo, una vez que encuentra un archivo cert.pem en /val/ssl, lo probará y fallará si no puede validar su control remoto.

Mi certificado "bueno" estaba en /etc/ssl y como era la máquina de un cliente no podía pedirle que eliminara el archivo /var/ssl.

Mi solución fue elegir mediante programación el cert.pem correcto en caso de que openssl falle (sin alterar la versión de openssl de la máquina, lo cual estaba prohibido).

información relacionada