обновить TLS 1.0 до TLS 1.2 в macOS - PullRequest
0 голосов
/ 10 мая 2018

У меня проблемы с установкой некоторых пакетов python, потому что у меня версия TLS 1.0. Как мне перейти на TLS 1.2?

python -c "import urllib2; import json; print(json.loads(urllib2.urlopen('https://www.howsmyssl.com/a/check').read())['tls_version'])"
TLS 1.0

Моя версия MacOS: 10.13.4 (17E202)
версия python: Python 2.7.13
версия openssl: LibreSSL 2.2.7

Я пытался обновить openssl, но он не обновляет LibreSSL. Я помню, что у меня была проблема год назад с openssl, я мог связать ее вручную или что-то в этом роде: (

1 Ответ

0 голосов
/ 11 мая 2018

Несмотря на то, что brew скачал новую версию openssl, старая использовалась с командой openssl.Так что я отключил csrutil , чтобы избавиться от символической ссылки openssl в /usr/bin/openssl:

sudo ln -s /usr/local/Cellar/openssl/1.0.2o_1/bin/openssl /usr/bin/openssl

, тогда версия openssl является последней:

~ openssl version
OpenSSL 1.0.2o  27 Mar 2018

, однако python все еще используетстарая версия openssl:

~ python -c "import ssl; print(ssl.OPENSSL_VERSION)"
OpenSSL 0.9.8zh 14 Jan 2016

Итак, снова отключим csrutil и продолжим с исправлением версии python.

Я удалил установки python2, которые мог найти, более или менее после этого:

brew uninstall python@2
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

затем я установил python2 через brew, и он использует правильный openssl:

~ brew install python@2
~ python -c "import urllib2,json; print(json.loads(urllib2.urlopen('https://www.howsmyssl.com/a/check').read())['tls_version'])"
TLS 1.2
...