我在 Bluemix 上有一个 Cloud Foundry 应用程序 (Python buildpack),在过去的几个月里,它已成功连接并使用绑定(bind)到它的 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证书已过期。
最佳答案
IBM 安装了一个 updated SSL certificate .现在连接工作正常。
关于python - IBM Watson Machine Learning 的入站 SSL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42279587/