2014-06-20 23 views
8

Ich habe einen Dropbox-Upload-Skript auf einem alten nas Box Ich habe vor kurzem bekomme ich habe veraltet ist auf den folgenden FehlerPython Referenzierung alte SSL Version

SSL certificate error: [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm

Ich denke, dies zu openssl gebührt Die Box

Also ich lade openssl, baute es aus der Quelle und installierte es, jetzt, wenn ich folgendes ausführen scheint es korrekt aktualisiert zu sein.

Aber es scheint, Python verweist immer noch auf eine alte Version, wie würde ich das aktualisieren?

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

Oh mein, 0.9.7 ... Sie müssen auf 0.9.8 migrieren. 1.0.1 * ist nicht * binär kompatibel. – jww

+0

Sie müssen Python gegen das neuere OpenSSL neu kompilieren. –

+0

@Paul - Verbindet Python statisch? Ich dachte, dass es eine dynamische Verbindung zu OpenSSL verwendet. Aus 'Modules/Setup.dist':' -L $ (SSL)/lib-lssl -lcrypto'. Wenn es dynamisch ist, muss er nur "LD_PRELOAD" setzen, auf das gemeinsame Objekt 0.9.8 zeigen und dann Python starten. – jww

Antwort

5

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

habe ich das gleiche Problem wie bei Ihnen, und so habe ich mehrere Antworten gesucht, aber es hat mir nicht geholfen;

1) Updating openssl in python 2.7

2) Update OpenSSL on OS X with Homebrew

3) https://apple.stackexchange.com/questions/126830/how-to-upgrade-openssl-in-os-x

Nach OpenSSL 1.0.1j von Homebrew auf MAC Upgrade, aber System Python noch zu alter Version 0.9.8 bezeichnet. Es stellte sich heraus, dass sich die Python auf openssl bezieht. Also ich habe neues Python mit gebrautem openssl installiert und dieses Problem auf Mac, noch nicht Ubuntu beendet.

Unter Mac OS X Version 10.10 und System Python-Version 2.7.6, ist mein Verfahren wie folgt: update

  • $ brauen openssl installieren

    1. $ brauen. Dann können Sie openssl Version 1.0.1j sehen.
    2. $ brew link openssl --force
    3. $ brew install python --mitgebraut-openssl. Sie müssen neue Python mit gebrühten Openssl installieren. Dann können Sie /usr/local/Cellar/python/2.7.8_2/bin/python sehen.
    4. $ sudo ln -s /usr/local/Cellar/python/2.7.8_2/bin/python/usr/local/ bin/python. Natürlich sollte/usr/local/* im Besitz von $ USER sein, nicht root, was von Ryan erzählt wird, aber ich habe 'sudo' benutzt. Und vor dieser Anweisung hatte ich/usr/local/bin/python nicht. Nach dieser Anweisung können Sie Python-Version 2.7.8 und nicht 2.7.6 verwenden.

    Schließlich können Sie wie folgt sehen;

    $ python --version

    Python 2.7.8

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

    OpenSSL 1.0.1j 15. Oktober 2014

    Bis Jetzt arbeite ich 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 dir.

  • 1

    Das funktionierte für mich.

    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 
    
    1

    Ich habe alle oben genannten Schritte und immer noch das gleiche Problem. Ich mein Problem gelöst, den folgenden Befehl, nachdem alle auf den vorherigen Antworten aufgelisteten:

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

    Hoffe, dass es jemand hilft :)

    4

    Haben diese Arbeit nach mehreren Tagen. MAC OS X El Captian oder größer

    > 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 
    

    Jetzt Python und OpenSSL erneut mit brauen installieren.

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

    Fügen Sie den folgenden auf die PATH in ~/.bash_profile auf Ihrem MAC

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

    Neustart der Klemme

    > 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" 
    

    sollten Sie OPEN SSL die neueste Version Version geben

    +0

    Du hast gerade meine Nacht gerettet! Stunden verloren Super Entschuldigung, du hast Tage verloren, aber vielen Dank für das Teilen !! –

    Verwandte Themen