1)我在Mac OS X El Capitan上运行Google App Engine SDK。我有Python 2.7.13
2)在尝试使用Stripe测试我的应用时,我收到以下错误
请求req_ApPsfecKnLFJxb:Stripe不再支持使用TLS 1.0发出的API请求。请使用TLS 1.2或更高版本启动HTTPS连接。您可以在https://stripe.com/blog/upgrading-tls了解有关此内容的更多信息。
3)我做了一些谷歌搜索,根据我发现的,我做了以下
a)使用brew来升级我的OpenSSL
b)确认当我做“打开”时,我得到了
的/ usr /本地的/ opt / OpenSSL的/ bin中/ OpenSSL的
当我做' openssl版本'时,我得到了
OpenSSL 1.0.2l
c)如果我这样做
导入ssl
ssl.OPENSSL_VERSION,我明白了
' OpenSSL 1.0.2l 2017年5月23日'
但我仍然从Stripe得到关于不使用TLS 1.2的错误。
我发现了SO question,但它并没有解决我的问题。我还发现了这个Google Group Discussion,在运行#5中的步骤之后,它显示app引擎仍然指向旧版本的OPENSSL,因为输出显示&#39; OpenSSL 0.9.8zh 2016年1月14日&#39; < / p>
我该如何解决这个问题?如何让python或app引擎使用我已经安装的较新版本的OpenSSL?
答案 0 :(得分:0)
确保升级到最新版本的App Engine SDK。另外,将其添加到您的app.yaml:
libraries:
- name: ssl
version: '2.7.11'
答案 1 :(得分:0)
我发现了问题,我的理解是
1)GAE仍然指旧的python安装(Mac附带的安装)。当我打开GAE启动器时, GAE&gt;偏好&gt; Python Path是空白的。
2)我需要做的是强制GAE使用新安装的Python(我在Brew中安装的Python,以及使用升级的OpenSSL的方向)。所以我现在定了 GAE&gt;偏好&gt; Python Path = / usr / local / bin / python。
现在一切正常并且从GAE中运行下面的代码告诉我我的TLS是OKAY
import urllib2
r = urllib2.urlopen("https://howsmyssl.com/").read()
return r
现在运行下面的代码可以获得OpenSSL的更新版本
import ssl
return ssl.OPENSSL_VERSION