【问题标题】:AppEngine Paypal integration giving SSLCertificateError on localhost, using PythonAppEngine Paypal 集成在本地主机上提供 SSLCertificateError,使用 Python
【发布时间】:2016-02-23 22:27:59
【问题描述】:

我正在将paypalrestsdk 集成到我的 AppEngine 项目中。当我使用我的本地 dev_appserver 尝试在 PayPal 沙箱上创建付款时,出现以下错误:

SSLCertificateError: Invalid and/or missing SSL certificate for URL: https://api.sandbox.paypal.com/v1/oauth2/token

所以,我尝试提供正确的 pem 文件,从 here 下载并设置正确的 ssl_option 属性:

# Setting up the correct path to the .pem file
cert = os.path.join(ROOT, 'certs/api.sandbox.paypal.com_SHA-2_01132018.pem')
logger.info("Using SSL certificate: %s", cert)
return Api(
    mode=get_paypal_environment(), # sandbox or live
    client_id=flask.current_app.config["PAYPAL_CLIENT_ID"],
    client_secret=flask.current_app.config["PAYPAL_CLIENT_SECRET"],
    ssl_options={"cert": cert}
)

Here PayPalRestSDK 文档提供了有关如何提供证书的详细信息。我已经仔细检查了创建的路径是否正确。

我发现了一个错误报告here,它谈到了一个类似的问题。

另外,我已经尝试了here 建议的解决方案,但仍然无法正常工作。

在实时实例上,在 apppot 上,这一切都可以完美运行

这是我的 requirements.txt 的相关部分:

Flask==0.10.1
itsdangerous==0.24
paramiko==1.15.1
pycrypto==2.6.1
Flask-OAuthlib==0.9.1
google-api-python-client==1.4.0
paypalrestsdk==1.11.1
requests[security]==2.9.1

有人遇到同样的问题吗?

【问题讨论】:

  • 我遇到了同样的问题。它绝对可以在我的设置中使用,并且我没有在代码的那个区域进行任何更改来破坏它。

标签: python google-app-engine ssl-certificate paypal-rest-sdk dev-appserver-2


【解决方案1】:

好的,我相信我已经解决了这个问题,至少在我的情况下,我将在下面描述。

这似乎是由于两个问题:

问题 #1) PayPal 正在迁移到仅支持 TLS 1.2,并已开始切换沙盒 URL,生产 URL 稍后会出现。这解释了为什么只有从沙箱连接时才会出现问题,以及为什么它以前可以工作但现在不行。更多关于这个here

问题 #2) 我本地安装的 Python 不支持 TLS 1.2。这是一个简单的检查方法:

$ python
>>> import ssl
>>> print ssl._PROTOCOL_NAMES

如果您没有看到 PROTOCOL_TLSv1_2 列出,这肯定是问题所在。就我而言,我在 Mac OS X 10.11 上使用 Python 上的内置版本,它在 OpenSSL 上内置了一个相当旧的版本。

那么如何解决呢?好吧,就我而言,这很有效(主要从here复制):

$ brew update
$ brew install openssl
$ brew link openssl --force 
$ brew install python --with-brewed-openssl
$ sudo ln -s /usr/local/Cellar/python/2.7.11/bin/python /usr/local/bin/python

现在,如果您运行我上面列出的测试,您应该会看到列出的 1.2 协议。

这应该会让一切恢复正常,祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多