在Mac OSX上启用TLS 1.2

Cas*_*sey 2 django macos ssl tls1.2

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

/ register上的PermissionError请求req_ADIwntj3xGaqUF:Stripe不再支持使用TLS 1.0发出的API请求.请使用TLS 1.2或更高版本启动HTTPS连接.您可以访问https://stripe.com/blog/upgrading-tls了解有关此内容的更多信息 .

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

OpenSSL 1.0.2k  26 Jan 2017
Run Code Online (Sandbox Code Playgroud)

当我运行which openssl输出时是:

/usr/local/opt/openssl/bin/openssl
Run Code Online (Sandbox Code Playgroud)

我找到了关于堆栈溢出的说明,据说可以运行brew link --force openssl.当我这样做时,错误是:

警告:拒绝链接:openssl链接keg-only openssl意味着在使用Homebrew的openssl的头文件时,你最终可能会链接到不安全的,已弃用的系统OpenSSL.相反,将完整的include/library路径传递给编译器,例如:
-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib

任何人都可以帮我搞定这个吗?

sid*_*ker 9

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

pip install urllib3
pip install pyopenssl
pip install ndg-httpsclient
pip install pyasn1
pip uninstall requests
pip install requests
Run Code Online (Sandbox Code Playgroud)

请参阅https://github.com/pinax/pinax-stripe/issues/267以及如何通过TLS 1.2运行django runserver

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