在Mac OSX上启用TLS 1.2

时间:2017-03-02 21:58:25

标签: django macos ssl tls1.2

我想把我的头发拉出来试图让我的本地机器上运行Stripe的Django应用程序使用OSX 10.12.3。我在尝试运行测试付款时遇到的错误是:

  

/ register处的PermissionError请求req_ADIwntj3xGaqUF:Stripe no   更长时间支持使用TLS 1.0进行的API请求。请启动HTTPS   与TLS 1.2或更高版本的连接。你可以在这里了解更多相关信息   https://stripe.com/blog/upgrading-tls

我使用brew成功升级了openssl。当我运行openssl version时输出为:

OpenSSL 1.0.2k  26 Jan 2017

当我运行which openssl时,输出为:

/usr/local/opt/openssl/bin/openssl

我发现堆栈溢出的说明是运行brew link --force openssl。当我这样做时,错误是:

  

警告:拒绝链接:openssl链接keg-only openssl意味着你   最终可能会链接到不安全,已弃用的系统OpenSSL   使用Homebrew的openssl标题时。相反,通过   编译器的完整包含/库路径,例如:
  -I / usr / local / opt / openssl / include -L / usr / local / opt / openssl / lib

有人可以帮我搞定吗?

2 个答案:

答案 0 :(得分:8)

Python环境中的问题和尝试的解决方案似乎如下:

pip install urllib3
pip install pyopenssl
pip install ndg-httpsclient
pip install pyasn1
pip uninstall requests
pip install requests

请参阅https://github.com/pinax/pinax-stripe/issues/267How to run django runserver over TLS 1.2

这就是假设你正在运行Python 2.7.9+。早期的Python版本没有TLS 1.2支持。

答案 1 :(得分:3)

对于使用brew + pyenv + pyenv-virtualenv的人来说,这就解决了我在Mac上丢失TLS 1.2的问题:

# Update XCode 
# Restart machine
Type:
$ brew update
$ brew upgrade pyenv
$ pyenv install 3.4.6 # the latest version of Python 3.4
$ pyenv global 3.4.6  # make default python
$ pyenv virtualenv 3.4.6 myenv
$ pyenv activate myenv
$ pip install -r requirements.txt

希望有一天对某人有用。