【问题标题】:How to run django runserver over TLS 1.2如何通过 TLS 1.2 运行 django runserver
【发布时间】:2017-01-09 18:48:31
【问题描述】:

我正在本地 Mac OS X 机器上测试 Stripe 订单。我正在实现这段代码:

stripe.api_key = settings.STRIPE_SECRET

        order = stripe.Order.create(
          currency = 'usd',
          email = 'j@awesomecom',
          items = [
                    {
                      "type":'sku',
                      "parent":'sku_88F260aQ',
                      "quantity": 1,
                    }
                  ],
          shipping = {
            "name":'Jenny Rosen',
            "address":{
              "line1":'1234 Main Street',
              "city":'Anytown',
              "country":'US',
              "postal_code":'123456'
            }
          },
        )

我收到一个错误:

Stripe 不再支持使用 TLS 1.0 发出的 API 请求。请 使用 TLS 1.2 或更高版本启动 HTTPS 连接。

我正在使用 django 1.10 和 python 版本 2.7.10

如何强制使用 TLS 1.2?我会在 python 或 django 端这样做吗?

【问题讨论】:

  • 您能否展示/告诉您如何在您的应用程序/项目中连接 Stripe API? Django 的 runserver 不支持 HTTPS 但您的问题表明您使用的是旧的 TLS 机制。
  • @MuhammadFahadManzoor 我添加了代码。但它没有引用 TLS。
  • 这意味着您在项目中使用另一个应用程序与 Stripe 进行交互,对吗?您使用的是该应用程序/库的最新版本吗?

标签: python django python-2.7 ssl tls1.2


【解决方案1】:

我解决了安装这个库的问题:

pip install urllib3
pip install pyopenssl
pip install ndg-httpsclient
pip install pyasn1

解决方案来自:

https://github.com/pinax/pinax-stripe/issues/267

【讨论】:

    【解决方案2】:

    这不是 django 问题,而是操作系统和语言问题。

    我正在使用 Mac OS X 和 brew 版本的 python。我也在使用虚拟环境,它有自己的 python 副本并打开 ssl。

    我做了以下事情:

    我首先下载了更新 OpenSSL 的最新版本的 XCode。 然后我卸载并重新安装了 brew python。 然后我更新了 virtualenv。

    【讨论】:

      【解决方案3】:

      如果您已经尝试更新 openssl 和 python(使用 brew),但仍然无法正常工作,请确保您的设置为 DEBUG = False。

      观看此线程以获取更多信息https://code.google.com/p/googleappengine/issues/detail?id=13207

      【讨论】:

        猜你喜欢
        • 2015-02-10
        • 2022-07-07
        • 1970-01-01
        • 1970-01-01
        • 2017-11-04
        • 1970-01-01
        • 2019-01-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多