gpt4 book ai didi

python - AppEngine 本地开发服务器上的 Braintree SDK SSLCertificateError

转载 作者:太空宇宙 更新时间:2023-11-03 11:42:19 24 4
gpt4 key购买 nike

Braintree SDK的使用在我的本地 dev_appserver.py 下,braintree.ClientToken.generate() 返回以下错误:

SSLError: SSLCertificateError:
Invalid and/or missing SSL certificate for URL:
https://api.sandbox.braintreegateway.com:443/merchants/<merchant_id>/client_token

我在服务器启动时使用 requests_toolbelt:

# Make requests work in GAE
import requests
from requests_toolbelt.adapters import appengine
appengine.monkeypatch()

明确排除 SSL 验证也不起作用(返回相同的错误消息):

appengine.monkeypatch(validate_certificate=False)

事实上,如果没有requests_toolbelt,我在调用.generate() 时得到的错误是:

ProtocolError('Connection aborted.', error(13, 'Permission denied'))

我还在 braintree-python-appenginemain.py 中尝试了破解项目,但我收到相同的 SSL 错误消息。

我的开发环境:

  • 苹果操作系统 10.11.6
  • gcloud 应用 Python 扩展 1.9.63
  • python 2.7.10
  • 请求==2.18.4
  • braintree==3.39.0
  • flask ==0.12.2

备注:

  1. 部署到 Google App Engine 后,我可以毫无问题地取回客户端 token
  2. https://www.braintreepayments.com/ 上直接使用 requests 返回 200,没有任何错误

最佳答案

Braintree 支持人员在(2017 年 11 月 20 日)回复了我的询问:

The error you're receiving is generally related to the SSL/TLS protocols being used when your app is run; our sandbox environment requires connections to be made via TLS 1.2, a requirement that does not yet apply to production.

From review, it appears that the protocols being used when the app is deployed locally are not valid for our environment. If the app settings are localised within the Google App Engine, that may be the cause of the issue; Python uses the system-supplied OpenSSL, and TLSv1.2 requires OpenSSL 1.0.1c or later.

所以根本原因是我的 Python 版本使用了旧版本的 OpenSSL:

$ python --version
Python 2.7.10

$ python
>> import ssl
>> ssl.OPENSSL_VERSION
>> 'OpenSSL 0.9.8zh 14 Jan 2016'

解决方案是通过 brew 升级我的 python 版本:

$ brew install python
$ python2 --version
Python 2.7.14

$ python2
>> import ssl
>> ssl.OPENSSL_VERSION
>> 'OpenSSL 1.0.2m 2 Nov 2017'

然后,使用新安装的 python 启动我的开发服务器解决了 SSLCertificateError:

python2 $appserver_path/dev_appserver.py ...

关于python - AppEngine 本地开发服务器上的 Braintree SDK SSLCertificateError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47389082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com