2014-06-20 44 views
8

referans, son zamanlarda benPython Ben var eski bir nas kutuyu bir Dropbox yükleme komut dosyası var eski SSL sürüm

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

Bu konuda güncel olmayan Openssl nedeniyle olduğunu düşünüyorum aşağıdaki hatayı alıyorum

Bu yüzden, openssl dosyasını indirip, kaynaktan kurdum ve yükledim, şimdi aşağıdakileri çalıştırdığımda doğru şekilde güncellenmiş görünüyor.

openssl version 
OpenSSL 1.0.1h 5 Jun 2014 

Ancak, Python'un eski bir sürümü atıfta bulunduğu görünecektir, bunu nasıl güncelleştiririm?

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

son sürümü AÇIK SSL vermelidir Oh, 0,9.7 ... 0,9,8'e geçmeniz gerekiyor. 1.0.1 * * uyumlu değil. – jww

+0

Python'u daha yeni OpenSSL'ye karşı yeniden derlemeniz gerekir. –

+0

@Paul - Python statik olarak bağlantı kurar mı? OpenSSL'ye dinamik bağlantı kullandığını düşündüm. 'Modules/Setup.dist': '-L $ (SSL)/lib -lssl -lcrypto'' dan. Eğer dinamikse, sadece 'LD_PRELOAD' ayarlanmalı, 0.9.8 paylaşılan nesneyi işaret etmeli ve sonra Python'u başlatmalıdır. – jww

cevap

5

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

bakınız seninki gibi aynı sorunu var ve bu yüzden çeşitli cevaplar aradık ama bana yardım etmedi;

MAC homebrew ile 1.0.1j OpenSSL'yi yükselttikten sonra 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

, ancak sistem piton hala eski sürüm 0.9.8 anılacaktır. Openssl için belirtilen python çıktı. Bu yüzden demlenmiş openssl ile yeni bir python kurdum ve bu sorunu Mac'te değil, henüz Ubuntu'da bitirdim.

  1. $ demlemek güncelleme
  2. $ demlemek openssl yüklemek şu şekildedir: Mac OS X sürümü 10.10 ve sistem piton sürümü 2.7.6 Açık

    , benim prosedürdür. Ardından openssl 1.0.1j versiyonunu görebilirsiniz.

  3. $ brew bağlantı openssl --force
  4. $ brew install python --with-brewed-openssl. Demlenmiş openssl ile yeni python yüklemeniz gerekiyor. Ardından, /usr/local/Cellar/python/2.7.8_2/bin/python adresini görebilirsiniz.
  5. $ sudo ln -s /usr/local/Cellar/python/2.7.8_2/bin/python/usr/local/bin/python. Tabii ki,/usr/local/*, Ryan tarafından söylenen root değil, $ USER tarafından sahiplenilmelidir, ancak 'sudo' kullandım. Ve, bu talimattan önce,/usr/local/bin/python'um yoktu. Bu komuttan sonra, 2.7.8 değil 2.7.8 python sürümünü kullanabilirsiniz.

Son olarak, belows olarak görebilirsiniz;

$ python version

Python 2.7.8

$ python -c "import ssl; baskı ssl.OPENSSL_VERSION"

OpenSSL 1.0.1j 15 Ekim 2014

Till şimdi, Ubuntu 12.04 üzerinde çalışıyorum. Ubuntu 12.04 için bir çözümüm varsa, cevabımı güncelleyeceğim. Umarım bu prosedür size yardımcı olur.

1

Bu benim için çalıştı.

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

Yukarıdaki tüm adımları yaptım ve hala aynı sorunu alıyordum.

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

o kimse :)

4

birkaç gün sonra bu çalışma var yardımcı Umut: Ben önceki yanıtlarını listelenen tüm olanları sonra aşağıdaki komutu ekleyerek benim sorun çözüldü. MAC OS X El Captian veya daha büyük

> 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 

Şimdi python'u ve openssl'ı demleme kullanarak tekrar yükleyin.

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

sizin MAC üzerinde ~/.bash_profile içinde

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

yeniden PATH aşağıdakileri ekleyin terminali

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

sürüm size

+0

Sadece gecemi kurtardın! saat kayıp süper gün kaybettiniz ama bunu paylaştığınız için çok teşekkür ederim !! –

İlgili konular