使用 zeep 的带有证书的 SOAP 请求

问题描述

所以我想请求 SOAP API。 我已从服务提供商处获得用户名、密码和证书。 这个证书对我来说是新事物,我遇到了一些未知错误

这是我所做的。:

from zeep import Client
from zeep.transports import Transport
from zeep.wsse.username import Usernametoken
from requests import Session
from requests.auth import HTTPBasicAuth
from zeep import Client,Settings

settings = Settings(raw_response=True)
session.verify = "serviceProvider.crt"
# session.cert="=serviceProvider.crt"
wsdl = "https://my.service.provider/Service?WSDL"

client=Client(wsdl,transport=Transport(session=session),wsse=Usernametoken("username","password"),settings=settings)

client.service.sayHello(json.dumps({"name":"test"}))

所以首先我不确定我应该在哪里分配那个证书,所以我分配了两种方法

带有session.verify = 'serviceProvider.crt'

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_Failed] 证书验证失败:证书链中的自签名证书 (_ssl.c:1123)

带有session.cert = 'serviceProvider.crt'

ssl.SSLError: [SSL: EE_KEY_TOO_SMALL] ee 密钥太小 (_ssl.c:4022)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)