无法让TLS1.2在Mac OS上运行

时间:2017-06-13 03:47:11

标签: python macos google-app-engine ssl stripe-connect

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?

2 个答案:

答案 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