Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我试图通过Python中的ZEEP客户机调用SOAP API,但得到了一个SSL错误_Python_Ssl Certificate_Zeep - Fatal编程技术网

我试图通过Python中的ZEEP客户机调用SOAP API,但得到了一个SSL错误

我试图通过Python中的ZEEP客户机调用SOAP API,但得到了一个SSL错误,python,ssl-certificate,zeep,Python,Ssl Certificate,Zeep,这是我的代码: import zeep import os from requests import Session from zeep import Client from zeep.transports import Transport from zeep import xsd from zeep.wsse.signature import Signature key='xxxxxxxx' pri='xxx.pfx' pub='xxx.pem' cert='xxx.cer' sig=Sig

这是我的代码:

import zeep
import os
from requests import Session
from zeep import Client
from zeep.transports import Transport
from zeep import xsd
from zeep.wsse.signature import Signature

key='xxxxxxxx'
pri='xxx.pfx'
pub='xxx.pem'
cert='xxx.cer'
sig=Signature(pri,pub,key)
session = Session()
transport =Transport(session=session)
client = Client('https://sandpit.dvshub.com.au:19443/Bus/VerificationServiceBus.svc/https',wsse=Signature(pri,pub,key))
print('Connected')
我不太确定如何使用.pfx、.pem、.cer文件连接 如果有人给我指点,我将不胜感激

我的错误消息:

回溯(最近一次调用上次):文件 “/home/ubuntu/.local/lib/python3.6/site packages/urllib3/connectionpool.py”, 第706行,在urlopen中 chunked=chunked,文件“/home/ubuntu/.local/lib/python3.6/site packages/urllib3/connectionpool.py”, 第382行,在请求中 self.validate_conn(conn)文件“/home/ubuntu/.local/lib/python3.6/site packages/urllib3/connectionpool.py”, 第1010行,在验证连接中 conn.connect()文件“/home/ubuntu/.local/lib/python3.6/site packages/urllib3/connection.py”, 第421行,连接中 tls_in_tls=tls_in_tls,文件“/home/ubuntu/.local/lib/python3.6/site packages/urllib3/util/ssl.py”, 第429行,在ssl_-wrap_插槽中 sock、context、tls\u in\u tls、server\u hostname=server\u hostname File“/home/ubuntu/.local/lib/python3.6/site packages/urllib3/util/ssl.py”, 第472行,在_ssl _wrap _socket _impl中 返回ssl\u context.wrap\u socket(sock,server\u hostname=server\u hostname)文件“/usr/lib/python3.6/ssl.py”, 第407行,在wrap_插座中 _context=self,_session=session)文件“/usr/lib/python3.6/ssl.py”,第817行,在init self.do_handshake()文件“/usr/lib/python3.6/ssl.py”,do_handshake中的第1077行 self._sslobj.do_handshake()文件“/usr/lib/python3.6/ssl.py”,do_handshake中第689行 self.\u sslobj.do\u handshake()ssl.SSLError:[ssl:CERTIFICATE\u VERIFY\u FAILED]CERTIFICATE VERIFY FAILED(\u ssl.c:852)

在处理上述异常期间,发生了另一个异常:

回溯(最近一次调用上次):文件 “/home/ubuntu/.local/lib/python3.6/site packages/requests/adapters.py”, 第449行,发送 timeout=timeout文件“/home/ubuntu/.local/lib/python3.6/site packages/urllib3/connectionpool.py”, 第756行,在urlopen中 方法,url,error=e,_pool=self,_stacktrace=sys.exc_info()[2]文件 “/home/ubuntu/.local/lib/python3.6/site packages/urllib3/util/retry.py”, 第574行,增量 引发MaxRetryError(_池、url、错误或响应错误(原因))urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='sandpit.dvshub.com.au',port=19443):最大 url:/Bus/VerificationServiceBus.svc/https超过重试次数 (由SSLError引起(SSLError(1),[SSL:CERTIFICATE\u VERIFY\u FAILED] 证书验证失败(_ssl.c:852)))

在处理上述异常期间,发生了另一个异常:

回溯(最近一次调用last):文件“Soap.py”,第20行,在 客户机=客户机('https://sandpit.dvshub.com.au:19443/Bus/VerificationServiceBus.svc/https,wsse=签名(pri,pub,key)) 文件“/home/ubuntu/.local/lib/python3.6/site-packages/zeep/client.py”, 第73行,在init self.wsdl=文档(wsdl,self.transport,settings=self.settings)文件 “/home/ubuntu/.local/lib/python3.6/site packages/zeep/wsdl/wsdl.py”, 第92行,在init self.load(location)文件“/home/ubuntu/.local/lib/python3.6/site packages/zeep/wsdl/wsdl.py”, 第95行,已加载 document=self.\u get\u xml\u document(位置)文件“/home/ubuntu/.local/lib/python3.6/site packages/zeep/wsdl/wsdl.py”, 第156行,在xml文档中 location,self.transport,self.location,settings=self.settings文件“/home/ubuntu/.local/lib/python3.6/site packages/zeep/loader.py”, 第79行,外部加载 content=transport.load(url)文件“/home/ubuntu/.local/lib/python3.6/site packages/zeep/transports.py”, 第122行,已加载 content=self.\u load\u remote\u data(url)文件“/home/ubuntu/.local/lib/python3.6/site packages/zeep/transports.py”, 第134行,输入加载远程数据 response=self.session.get(url,timeout=self.load\u timeout)文件“/home/ubuntu/.local/lib/python3.6/site packages/requests/sessions.py”, 第555行,输入get 返回self.request('GET',url,**kwargs)文件“/home/ubuntu/.local/lib/python3.6/site packages/requests/sessions.py”, 第542行,请求中 resp=self.send(prep,**send_kwargs)文件“/home/ubuntu/.local/lib/python3.6/site packages/requests/sessions.py”, 发送中的第655行 r=adapter.send(request,**kwargs)文件“/home/ubuntu/.local/lib/python3.6/site-packages/requests/adapters.py”, 发送中的第514行 raise SSLError(e,request=request)requests.exceptions.SSLError:HTTPSConnectionPool(host='sandpit.dvshub.com.au',port=19443):最大 url:/Bus/VerificationServiceBus.svc/https超过重试次数 (由SSLError引起(SSLError(1),[SSL:CERTIFICATE\u VERIFY\u FAILED] 证书验证失败(_ssl.c:852)))