OpenSSL-Upgrade | Zertifikat konnte nicht validiert werden

OpenSSL-Upgrade | Zertifikat konnte nicht validiert werden

Ich arbeite an einer CentOS7-Maschine und versuche, die OpenSSL-Version meiner Maschine von 1.0.2k auf 1.1.0l zu aktualisieren. Es scheint, als ob der Handshake-Prozess mit meinem Server (der sich nicht geändert hat) nach dem Upgrade fehlschlägt und ich versuche, die Ursache herauszufinden.

Ausführen des folgenden Befehls mit beiden OpenSSL-Versionen:

openssl s_client -showcerts -connect Server:Port

Das Ergebnis war ein Fehler mit der neueren Version (wenn ich die -CAfile-Validierung angebe, funktioniert sie mit beiden). Ein Unterschied des Ergebnisses:

Alte 1.0.2k (Handshake erfolgreich):

Temporärer Serverschlüssel: ECDH, P-256, 256 Bit Neu, TLSv1/SSLv3, Verschlüsselung ist ECDHE-RSA-AES128-GCM-SHA256 Neu 1.1.0l (Handshake schlägt fehl):

Temporärer Serverschlüssel: X25519, 253 Bit neu, TLSv1.2, Verschlüsselung ist ECDHE-RSA-AES128-GCM-SHA256. Rückgabecode der Überprüfung: 20 (lokales Ausstellerzertifikat konnte nicht abgerufen werden). Ich wäre für Hilfe beim Verständnis des Unterschieds und der Gründe dankbar.

zu Ihrer Information, ich habe hier eine ähnliche Drohung gestartet: https://stackoverflow.com/questions/68763253/openssl-upgrade-fail-validating-certificate?noredirect=1#comment121583146_68763253 ohne viel Glück.

Danke :)

Antwort1

Unter Centos 7 können Sie dieses Problem auch mit den folgenden Befehlen beheben:

#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 

Antwort2

Zur späteren Bezugnahme wird hier eine Lösung hinzugefügt.

Sobald Sie mit OpenSSL-Versionen > 1.0.2k arbeitenAnBei CentOS7-Maschinen scheint es eine Verhaltensänderung im Root-Auflösungspfad zu geben.

Openssl durchläuft eine vordefinierte Liste mit Zertifikatspeicherorten. Sobald es jedoch auf eine Datei cert.pem in /val/ssl stößt, testet es diese. Wenn Ihr Remote-Server nicht validiert werden kann, schlägt der Test fehl.

Mein „gutes“ Zertifikat befand sich in /etc/ssl und da es sich um die Maschine eines Kunden handelte, konnte ich ihn nicht bitten, die Datei /var/ssl zu entfernen.

Meine Lösung bestand darin, für den Fall eines OpenSSL-Fehlers programmgesteuert die richtige Datei cert.pem auszuwählen (ohne die OpenSSL-Version der Maschine zu ändern, was verboten war).

verwandte Informationen