【问题标题】:Unable to get TLS1.2 working on Mac OS无法让 TLS1.2 在 Mac OS 上运行
【发布时间】:2017-06-13 03:47:10
【问题描述】:

1) 我在 Mac OS X El Capitan 上运行 Google App Engine SDK。我有 Python 2.7.13

2) 在尝试使用 Stripe 测试我的应用时,我收到以下错误

Request 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 版本”时,我得到了

OpenSSL 1.0.2l

c) 如果我这样做了

导入 ssl

ssl.OPENSSL_VERSION,我明白了

'OpenSSL 1.0.2l 2017 年 5 月 23 日'

但我仍然从 Stripe 收到关于不使用 TLS 1.2 的错误。

我找到了这个SO question,但它并没有解决我的问题。我还发现了 thisGoogle Group Discussion,在运行 #5 中的步骤后,它显示应用引擎仍然指向旧版本的 OPENSSL,因为输出显示“OpenSSL 0.9.8zh 14 Jan 2016”

我该如何解决这个问题?如何让 python 或应用引擎使用我安装的较新版本的 OpenSSL?

【问题讨论】:

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


    【解决方案1】:

    确保您升级到最新版本的 App Engine SDK。此外,将其添加到您的 app.yaml:

    libraries:
    - name: ssl
      version: '2.7.11'
    

    【讨论】:

    • 我的 app.yaml 已经包含 ssl 但版本是“最新”。我之前尝试过 2.7.11 但它没有解决问题。我会尝试升级到最新的 SDK 版本
    • 升级到最新版本的 App Engine SDK 并没有解决问题
    【解决方案2】:

    我发现了问题,我的理解是

    1) GAE 仍然指的是旧的 python 安装(Mac 附带的那个)。当我打开 GAE 启动器时, GAE > 首选项 > Python 路径为空白。

    2) 我需要做的是强制 GAE 使用新安装的 Python(我使用 Brew 安装的 Python,并指示使用升级后的 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 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      • 1970-01-01
      • 2018-07-06
      • 2012-01-15
      • 2021-05-09
      相关资源
      最近更新 更多