it-swarm.com.de

Python verweist auf alte SSL-Version

Ich habe ein Dropbox-Upload-Skript für eine alte NAS-Box, die ich habe. In letzter Zeit habe ich die folgende Fehlermeldung erhalten

Fehler beim SSL-Zertifikat: [Errno 1] _ssl.c: 504: Fehler: 0D0890A1: ASN1-Codierungsroutinen: ASN1_verify: Algorithmus für unbekannten Nachrichtenauszug

Ich denke, das liegt daran, dass openssl auf der Box nicht mehr aktuell ist

Also lade ich openssl herunter, baute es aus dem Quellcode und installierte es, jetzt, wenn ich Folgendes ausführte, scheint es, dass es korrekt aktualisiert wurde.

openssl version
OpenSSL 1.0.1h 5 Jun 2014

Aber es scheint, dass Python immer noch auf eine alte Version verweist. Wie würde ich diese aktualisieren?

python -c "import ssl; print ssl.OPENSSL_VERSION"
OpenSSL 0.9.7m 23 Feb 2007
13
mburns02

Hat das nach einigen Tagen zum Laufen gebracht. MAC OS X El Captian oder höher

 Sudo rm -rf /Library/Frameworks/Python.framework/Versions/2.7
 Sudo rm -rf "/Applications/Python 2.7"
 cd /usr/local/bin/
 ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | tr -d @ | xargs rm
 brew uninstall python
 brew uninstall openssl
 brew link --force openssl

Installieren Sie nun python und openssl erneut mit brew. 

 brew install openssl
 brew install python --with-brewed-openssl

Fügen Sie dem PATH in ~/.bash_profile auf Ihrem MAC Folgendes hinzu

 vi ~/.bash_profile
 export PATH=/usr/local/opt/openssl/bin:/usr/local/opt/python/libexec/bin:$PATH

starten Sie das Terminal neu 

 python --version (verify if it is picking up the right version)
 openssl version -a (verify if it is picking up the right version)
 python -c "import ssl; print ssl.OPENSSL_VERSION"

(Hinweis: Wenn Sie Python3 installiert haben, müssen Sie die Syntax print im Inline-Compiler-Schritt aktualisieren.)

python -c "import ssl; print(ssl.OPENSSL_VERSION)"

sollte Ihnen die neueste Version der Open-SSL-Version geben

18
Arun Ganesan

2018 unter MacOS
Ich habe mit den anderen Antworten ohne Erfolg versucht: 

  • Die --with-brewed-openssl Option gibt Warning: python: this formula has no --with-brewed-openssl option so it will be ignored! 
  • und der Befehl brew link openssl --force gibt Warning: Refusing to link: openssl

Ich habe es geschafft mit zu arbeiten

brew install openssl
brew install [email protected]

Dann 

openssl version

und

python -c "import ssl; print ssl.OPENSSL_VERSION"

gab mir die gleiche OpenSSL-Version.

5
Guglie

Bitte beachten Sie http://rkulla.blogspot.kr/2014/03/the-path-to-homebrew.html .

Ich habe das gleiche Problem wie Sie und deshalb habe ich mehrere Antworten gesucht, aber es hat mir nicht geholfen.

  1. openssl in python 2.7 aktualisieren
  2. OpenSSL unter OS X mit Homebrew aktualisieren
  3. https://Apple.stackexchange.com/questions/126830/how-to-upgrade-openssl-in-os-x

Nach dem Upgrade von openssl auf 1.0.1j durch Homebrew auf MAC, aber der System-Python bezog sich immer noch auf die alte Version 0.9.8. Es stellte sich heraus, dass der Python sich auf openssl bezieht. Also habe ich neuen Python mit gebrautem OpenSL installiert und diese Ausgabe auf Mac, Ubuntu noch nicht abgeschlossen.

Unter Mac OS X Version 10.10 und System Python Version 2.7.6 verfahren Sie wie folgt.

  1. $ brew update 
  2. $ brew install openssl. Dann können Sie die openssl-Version 1.0.1j sehen. 
  3. $ brew link openssl --force 
  4. $ brew install python --with-brewed-openssl. Sie müssen neuen Python mit gebrautem openssl installieren. Dann können Sie /usr/local/Cellar/python/2.7.8_2/bin/python sehen. 
  5. $ Sudo ln -s /usr/local/Cellar/python/2.7.8_2/bin/python /usr/local/bin/python. Natürlich sollte/usr/local/* $ USER gehören, nicht root, was von Ryan gesagt wird, aber ich habe 'Sudo' verwendet. Und vor dieser Anweisung hatte ich/usr/local/bin/python nicht. Nach dieser Anweisung können Sie Python-Version 2.7.8 nicht 2.7.6 verwenden.

Schließlich können Sie wie unten sehen;

$ python --version

Python 2.7.8

$ python -c "import ssl; print ssl.OPENSSL_VERSION"

OpenSSL 1.0.1j 15. Oktober 2014

Bis jetzt arbeite ich daran an Ubuntu 12.04. Wenn ich eine Lösung für Ubuntu 12.04 habe, werde ich meine Antwort aktualisieren. Ich hoffe, dieses Verfahren hilft Ihnen.

5
user2434741

Ich fand, dass ich den PFAD ändern musste, um das System zu verwenden (aktualisiertes SSL):

$ pip install --editable .

Obtaining file:///Users/jhlynch/Projects/flaskr
Collecting flask (from flaskr==0.0.0)
  Could not fetch URL https://pypi.python.org/simple/flask/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:661) - skipping
  Could not find a version that satisfies the requirement flask (from flaskr==0.0.0) (from versions: )
No matching distribution found for flask (from flaskr==0.0.0)

$ python -c "import ssl; print(ssl.OPENSSL_VERSION)"

OpenSSL 0.9.8zh 14 Jan 2016                      <<< note older version


$ echo $PATH
/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/Users/jhlynch/.nix-profile/bin:/Users/jhlynch/.nix-profile/sbin:/Users/jhlynch/.nix-profile/lib/kde4/libexec:/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/default/sbin:/nix/var/nix/profiles/default/lib/kde4/libexec:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

$ PATH="/usr/local/bin:/usr/local/sbin:${PATH}"

$ export PATH

$ python -c "import ssl; print(ssl.OPENSSL_VERSION)"

OpenSSL 1.0.2o  27 Mar 2018                       <<< note newer version

$ pip install --editable .

Obtaining file:///Users/jhlynch/Projects/flaskr
Collecting flask (from flaskr==0.0.0)
  Downloading https://files.pythonhosted.org/packages/77/32/e3597cb19ffffe724ad4bf0beca4153419918e7fa4ba6a34b04ee4da3371/Flask-0.12.2-py2.py3-none-any.whl (83kB)
...                <<< works this time!
3
JHLynch

Das hat für mich funktioniert.

python -c "import ssl; print ssl.OPENSSL_VERSION"
brew link openssl --force
brew install python --with-brewed-openssl
mv /usr/local/bin/python /usr/local/bin/python_old
Sudo ln -s /usr/local/Cellar/python/2.7.11/bin/python /usr/local/bin/python
2
Shafi Ulla

Ich habe alle oben genannten Schritte ausgeführt und bekam immer noch das gleiche Problem. Ich habe mein Problem gelöst, indem ich den folgenden Befehl nach den in den vorherigen Antworten aufgeführten hinzugefügt habe:

brew unlink openssl --force --overwrite python && brew link openssl --force --overwrite python

Hoffe es hilft jemandem :)

1
greenFedoraHat

OSX Sierra, Python 3.7, dasselbe Problem, das erneute Installieren/Aktualisieren von Python und OpenSSL hat bei diesem Problem nicht geholfen (war aber trotzdem nützlich, denke ich).

Grundlösung: Bereinigen Sie Ihren $ PATH in .bash_profile! Ich musste manuell entfernen Bündel veralteter Verzeichnisse (/Library/Frameworks/Python.framework/Versions/3.4/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages:/Library/Frameworks/Python.framework/Versions/2.7/bin)

Dann renne:

brew link --overwrite --dry-run python

Wenn alles in Ordnung ist, wiederholen Sie dies ohne --dry-run:

brew link --overwrite python

Ergebnis:

Linking /usr/local/Cellar/python/3.7.0... 25 symlinks created
~
$  python3 -c "import ssl; print(ssl.OPENSSL_VERSION)"
OpenSSL 1.0.2p  14 Aug 2018
1
Benny K