Als ich die SSL-Kommunikation mit der Drittanbieter-API von Python unter Ubuntu 20.04 versuchte, trat der folgende Fehler auf. Es scheint unter Ubuntu 20.04 zu passieren.
(Caused by SSLError(SSLError(1, '[SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1123)')
Ich werde die Lösung unter Bezugnahme auf die nachstehende Qualitätssicherung zusammenfassen. https://askubuntu.com/questions/1233186/ubuntu-20-04-how-to-set-lower-ssl-security-level
Überprüfen Sie das Speicherortverzeichnis der openssl-Konfigurationsdatei mit dem folgenden Befehl.
% openssl version -d
Übrigens ist es in der Regel unter "/ usr / lib / ssl".
Fügen Sie die folgende Zeile am Anfang der Datei hinzu und speichern Sie sie.
openssl_conf = default_conf
Fügen Sie als Nächstes am Ende der Datei Folgendes hinzu.
[ default_conf ]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect] MinProtocol = TLSv1.2 CipherString = DEFAULT:@SECLEVEL=1
Dadurch wird die Sicherheitsstufe der OpenSSL-Verschlüsselung gesenkt. Dies allein sollte die SSL-Kommunikation ermöglichen.
Das direkte Bearbeiten der Konfigurationsdatei unter / usr / lib / ssl wirkt sich auf das gesamte Linux-System aus. Wenn Sie den Effekt beim Anmelden als bestimmter Benutzer lokalisieren möchten, fügen Sie .bashrc die folgenden Umgebungsvariablen hinzu.
export OPENSSL_CONF=/path/to/my/openssl.cnf
Es scheint, dass die Ursache darin besteht, dass die Standardeinstellung des Debine-Typs OpenSSL sicherer geworden ist. Dies ist der Hintergrund, der sicher wurde. (Englisch) https://weakdh.org/
Eine kurze Übersicht zeigt eine Sicherheitslücke im von SSL verwendeten Schlüsselaustauschalgorithmus. Beim Versuch einer SSL-Kommunikation, die der Sicherheitsanfälligkeit entspricht, tritt ein DH_KEY_TOO_SMALL-Fehler auf.
Die grundlegende Lösung besteht darin, die Sicherheit auf der Serverseite zu verbessern. Diesmal ist dies jedoch nicht möglich, da eine Drittanbieter-API verwendet wird. Daher wurde das oben beschriebene Verfahren zum Ändern der Sicherheitsstufe angewendet.