[PYTHON] Was tun, wenn unter Ubuntu 20.04 ein SSL-Verbindungsfehler (ssl.SSLError: [SSL: DH_KEY_TOO_SMALL]) auftritt?

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

Bearbeiten Sie openssl.cnf

Ü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.

Lokalisierung von openssl.cnf

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

Hintergrund zu diesem Fehler

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.

Recommended Posts

Was tun, wenn unter Ubuntu 20.04 ein SSL-Verbindungsfehler (ssl.SSLError: [SSL: DH_KEY_TOO_SMALL]) auftritt?
Was tun, wenn beim Importieren von _ssl ein Fehler auftritt?
Was tun, wenn beim Importieren von numpy mit VScode ein Fehler auftritt?
[OSX] [pyenv] Was tun, wenn in pip ein SSL-Fehler auftritt?
Was tun, wenn bei der Installation von pyenv kein Fehler auftritt?
Was tun, wenn beim Laden von mnist eine Fehlermeldung angezeigt wird?
[Django] Was tun, wenn beim Registrieren von Daten von der Verwaltungssite in die Datenbank ein Integritätsfehler auftritt?
Was tun, wenn ein Fehler im TensorFlow RNN-bezogenen Import oder in der RNN (LSTM) -Zelle (v 0.11r ~) auftritt?
Was tun, wenn CERTIFICATE_VERIFY_FAILED auftritt, wenn nltk.download () unter macOS pyhon ausgeführt wird?
[Python] Was tun, wenn bei send_keys in Headless Chrome ein Fehler auftritt?
Was tun, wenn ein SSL-Fehler mit pip in einer Windows10-, Miniconda- oder VScode-Umgebung auftritt?
Was tun, wenn in Sublime Text Python ein Unicode-Codierungsfehler auftritt?
Was tun, wenn bei der Installation von Python mit pyenv eine Fehlermeldung angezeigt wird?
Was tun, wenn im Selenium Chrome-Treiber ein Versionsfehler auftritt?
Was tun, wenn die japanische Unterstützung unter Ubuntu 16.04 nicht vollständig installiert ist?
Was tun, wenn die SciPy-Installation unter CentOS fehlschlägt?
Was tun, wenn beim Laden eines mit Poesie erstellten Python-Projekts in VS Code ein Fehler auftritt?
[Python] Typ Fehler: 'WebElement'-Objekt ist nicht iterierbar Was tun, wenn ein Fehler auftritt?
Was tun, wenn ein Fehler "unbekannter Dienst" vom gRPC-Server zurückgegeben wird?
Was tun, wenn in pycurl (einer von ihnen) "(35, 'SSL-Verbindungsfehler')" angezeigt wird?
Was tun, wenn beim Importieren von matplotlib in Python (Mac) eine Fehlermeldung angezeigt wird?
Was tun, wenn beim Importieren von matplotlib mit Jupyter ein Importfehler auftritt?
Was tun, wenn bei Verwendung von ts-node-dev unter Linux der Fehler "ERR_FEATURE_UNAVAILABLE_ON_PLATFORM" angezeigt wird?
Was tun, wenn Sie Python auf IntelliJ ausführen und mit einem Fehler beenden?
Was tun, wenn `pip install matplot lib` auf dem Mac fehlschlägt?
Was tun, wenn Sie unter Linux kein WLAN verwenden können?
Was tun, wenn die Installation von pip mysqlclient unter MacOS fehlschlägt?
Was tun, wenn unter Linux die Fehlermeldung "Namensauflösung vorübergehend fehlgeschlagen" ausgegeben wird?
Was tun, wenn ein undefinierter Fehler angezeigt wird: Das Objekt 'Module_six_moves_urllib_parse' hat unter MacOS kein Attribut 'urlencode'
Was tun, wenn beim Ausführen von "certbot erneuern" in der CakePHP-Umgebung eine Fehlermeldung angezeigt wird?
Was tun, wenn beim Versuch, pip mit pyenv zu verwenden, ein undefinierter Fehler angezeigt wird?
Was tun, wenn beim Aktivieren von public_network oder private_network unter Vagrant + Arch Linux beim Vagrant + Arch Linux → Install netctl eine Fehlermeldung angezeigt wird?
Was tun, wenn Ubuntu abstürzt?
Was tun, wenn Yum kaputt geht?
Was tun, wenn Python unter Git für Windows nicht funktioniert?
Was tun, wenn der Inode unter EC2 Linux erschöpft ist?
Was tun, wenn PyAudio unter Python 3.7, 3.8, 3.9 unter Windows nicht installiert werden kann?
Was tun, wenn die Fehlermeldung angezeigt wird, dass der c-Compiler in configure keine ausführbaren Dateien erstellen kann?
Was tun, wenn pip --user in einer mit pyenv erstellten virtuellen Umgebung einen Fehler zurückgibt?
Was tun, wenn ein Fehler wie "Qstring" angezeigt wird? Wurde bereits mit mne python auf Version 1 gesetzt
Was tun, wenn Sie während der Anaconda-Installation unter Linux nicht weiterkommen?
Was tun, wenn PyInstaller3.5 einen Fehler in Python3.8 verursacht (TypeError: Eine Ganzzahl ist erforderlich (Typbytes erhalten))
Was tun, wenn beim Versuch, auf den Git-Hub zuzugreifen, der Fehler "Berechtigung verweigert" (öffentlicher Schlüssel) angezeigt wird?
Was tun, wenn beim Importieren von Lebensläufen ein symbolischer Linkfehler auftritt, während versucht wird, OpenCV in Python zu installieren?
Was tun nach der Installation von Linux (Ubuntu)
Was tun, wenn psycopg2 einen Fehler auslöst, wenn pipenv in einer Pipenv-Umgebung gesperrt wird?
Was tun, wenn beim Versuch, eine Nachricht in task.loop () unmittelbar nach dem Start zu senden, eine Fehlermeldung angezeigt wird?
Was tun, wenn auf pipenv der Fehler "Keine Versionen gefunden" angezeigt wird?
Was tun, wenn Scrapy nach der Installation von Scrapy mit Pip auf dem Mac nicht funktioniert?
Lösung, wenn Django keine Bilder aus einem statischen Ordner laden kann
Was tun, wenn pipreqs zu UnicodeDecodeError führt?
Was tun, wenn die Pipenv-Shell nicht mehr möglich ist?
Was tun, wenn mod_fcgid UnicodeEncodeError nicht auflösen kann?
Was tun, wenn die Schienen nicht funktionieren?
Was tun, wenn pip nicht installiert werden kann?
Was tun, wenn ein PermissionError in tempfile.mkstemp auftritt?