无法让 TLS1.2 在 Mac OS 上工作
Unable to get TLS1.2 working on Mac OS
1) 我是 运行 Google Mac OS X El Capitan 上的 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) 确认当我执行 'which openssl' 时,我得到
/usr/local/opt/openssl/bin/openssl
当我这样做时 'openssl version',我得到
OpenSSL 1.0.2l
c) 如果我这样做
导入 ssl
ssl.OPENSSL_VERSION,我得到
'OpenSSL 1.0.2l 23 May 2017'
但我仍然从 Stripe 收到有关未使用 TLS 1.2 的错误消息。
我发现了这个 but it didn't solve my problem. I also found thisGoogle Group Discussion 并且在 运行 #5 中的步骤之后,它显示应用引擎仍然指向旧版本的 OPENSSL 因为输出显示 'OpenSSL 0.9.8zh 14 Jan 2016'
我该如何解决这个问题?如何让 python 或 App Engine 使用我安装的较新版本的 OpenSSL?
确保升级到最新版本的 App Engine SDK。另外,将此添加到您的 app.yaml:
libraries:
- name: ssl
version: '2.7.11'
我想通了,我的理解是
1) GAE 仍然指的是旧的 python 安装(Mac 附带的安装)。当我打开 GAE 启动器时,
GAE > 首选项 > Python 路径为空。
2) 我需要做的是强制 GAE 使用新安装的 Python(我用 Brew 安装的那个,指示使用升级的 OpenSSL)。所以我现在设置
GAE > 首选项 > Python 路径 = /usr/local/bin/python.
现在一切正常,运行下面来自 GAE 的代码告诉我我的 TLS 正常
import urllib2
r = urllib2.urlopen("https://howsmyssl.com/").read()
return r
此外 运行 下面的代码现在为我提供了 OpenSSL 的更新版本
import ssl
return ssl.OPENSSL_VERSION
1) 我是 运行 Google Mac OS X El Capitan 上的 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) 确认当我执行 'which openssl' 时,我得到
/usr/local/opt/openssl/bin/openssl
当我这样做时 'openssl version',我得到
OpenSSL 1.0.2l
c) 如果我这样做
导入 ssl
ssl.OPENSSL_VERSION,我得到
'OpenSSL 1.0.2l 23 May 2017'
但我仍然从 Stripe 收到有关未使用 TLS 1.2 的错误消息。
我发现了这个
我该如何解决这个问题?如何让 python 或 App Engine 使用我安装的较新版本的 OpenSSL?
确保升级到最新版本的 App Engine SDK。另外,将此添加到您的 app.yaml:
libraries:
- name: ssl
version: '2.7.11'
我想通了,我的理解是
1) GAE 仍然指的是旧的 python 安装(Mac 附带的安装)。当我打开 GAE 启动器时, GAE > 首选项 > Python 路径为空。
2) 我需要做的是强制 GAE 使用新安装的 Python(我用 Brew 安装的那个,指示使用升级的 OpenSSL)。所以我现在设置 GAE > 首选项 > Python 路径 = /usr/local/bin/python.
现在一切正常,运行下面来自 GAE 的代码告诉我我的 TLS 正常
import urllib2
r = urllib2.urlopen("https://howsmyssl.com/").read()
return r
此外 运行 下面的代码现在为我提供了 OpenSSL 的更新版本
import ssl
return ssl.OPENSSL_VERSION