【发布时间】:2017-02-16 16:29:49
【问题描述】:
我在 Bluemix 上有一个 Cloud Foundry 应用程序(Python buildpack),它已成功连接到并在过去几个月使用绑定到它的 Watson Machine Learning (WML) 服务。但是,从今天早上开始,我在尝试调用该服务时收到 SSL 错误。错误可能在今天之前就开始了,我今天早上才注意到。
我使用 Python 请求从应用程序调用 WML。我还尝试使用Postman 调用该服务。
这是相关的 Python 代码(已经运行了几个月):
import requests
spssUrl = 'https://palbyp.pmservice.ibmcloud.com/pm/v1/{model}'
spssModelscore = 'score/bikeride'
spssParams = {"accesskey": accessKey, "metadatatype": "score"}
spssHeaders = {"Content-Type": "application/json"}
spssResults = requests.post(spssUrl.format(model = spssModelscore), data=json.dumps(modelPayload), params=spssParams, headers=spssHeaders)
这是我看到的错误:
requests.exceptions.SSLError
SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
最近有什么变化吗?我需要在我的应用程序/客户端中进行任何其他配置才能连接到服务吗?
更新
我发现我可以通过在请求中禁用 SSL 验证(添加 verify=False)成功调用 WML。
spssResults = requests.post(spssUrl.format(model = spssModelscore), data=json.dumps(modelPayload), params=spssParams, headers=spssHeaders, verify=False)
显然这不是解决这个问题的正确方法。有什么指导吗?我想知道 WML 最近是否开始使用更新的 SSL 证书,该证书不在 requests 正在使用的 CA 列表中——并且不知何故无法验证。
更新
发现 SSL 证书已过期。
【问题讨论】:
标签: python ssl machine-learning ibm-cloud