atualização do openssl | falha na validação do certificado

atualização do openssl | falha na validação do certificado

Estou trabalhando na máquina CentOS7 e estou tentando atualizar o openssl da minha máquina versão 1.0.2k -> 1.1.0l. Parece que o processo de handshake com meu servidor (que não mudou) falhou após a atualização e estou tentando descobrir a causa.

Executando o seguinte comando com ambas as versões do openssl:

openssl s_client -showcerts -connect servidor:porta

Resultou em falha com o mais recente (se eu fornecer a validação -CAfile funciona com ambos). Uma diferença do resultado:

Antigo 1.0.2k (aperto de mão bem-sucedido):

Chave temporária do servidor: ECDH, P-256, 256 bits Novo, TLSv1/SSLv3, Cifra é ECDHE-RSA-AES128-GCM-SHA256 Novo 1.1.0l (falha no handshake):

Chave temporária do servidor: X25519, 253 bits Novo, TLSv1.2, a cifra é ECDHE-RSA-AES128-GCM-SHA256 Verifique o código de retorno: 20 (não foi possível obter o certificado do emissor local) Agradeceria se me ajudasse a entender a diferença e por que eles são diferentes.

para sua informação, comecei uma ameaça semelhante aqui: https://stackoverflow.com/questions/68763253/openssl-upgrade-fail-validating-certificate?noredirect=1#comment121583146_68763253 sem muita sorte.

Obrigado :)

Responder1

no Centos 7 você também pode corrigir esse problema com os seguintes 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 

Responder2

Para referência futura, adicione solução aqui.

Depois de começar a trabalhar com a versão openssl> 1.0.2ksobremáquinas centos7, parece haver uma mudança comportamental no caminho de resolução raiz.

O Openssl passa por uma lista predefinida de locais de armazenamento de certificados, no entanto, ao encontrar um arquivo cert.pem em /val/ssl, ele o testará e falhará se não for capaz de validar seu controle remoto.

Meu certificado "bom" estava em /etc/ssl e como era uma máquina de cliente não pude pedir para ele remover o arquivo /var/ssl.

Minha solução foi escolher programaticamente o cert.pem correto caso o openssl falhasse (sem alterar a versão do openssl da máquina, o que era proibido).

informação relacionada