【问题标题】:Why does my Google App Engine app use an old version of OpenSSL?为什么我的 Google App Engine 应用使用旧版本的 OpenSSL?
【发布时间】:2019-11-10 08:20:21
【问题描述】:

我有

libraries:
- name: ssl
  version: latest

在我的 app.yaml 文件中

我打印出来

print(ssl.OPENSSL_VERSION)

在我的 main.py 文件中,这是一个烧瓶应用程序。当我使用 python 运行 main.py 时,程序会打印出来

'OpenSSL 1.1.0h  27 Mar 2018'

但是当我使用 dev_appserver.py 运行应用程序时,它会打印出来

OpenSSL 0.9.8zh 14 Jan 2016

为什么它使用旧版本的 open ssl?我认为这会导致我在尝试使用 Twilio 发送消息时遇到此错误

TwilioRestException: HTTP 426 error: Unable to create record: Upgrade Required

【问题讨论】:

  • 两个应用引擎服务是否在同一个项目中?正如您在问题this docs 中提到的那样,它应该具有相同的 SSL 库

标签: google-app-engine flask openssl


【解决方案1】:

我不确定,但我认为 gcloud 工具不会在您的计算机上安装任何版本的 OpenSSL,而是使用现有 Python 安装中已有的 OpenSSL 版本。

因此,与 dev_appserver.py 一起使用的 OpenSSL 版本与生产环境中使用的版本不同。

main.py 和 dev_appserver.py 之间的差异很可能是由于不同的路径配置不同造成的。这两个版本的 OpenSSL 位于您计算机上的某个位置,并且路径配置会选择一个与另一个版本。

最好的检查方法是在生产环境中记录 OpenSSL 版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 2018-09-30
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多