问题描述
这是我的代码:
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,key))
print('Connected')
我不太确定如何使用 .pfx、.pem、.cer 文件进行连接 我将不胜感激任何指针
我的错误信息:
回溯(最近一次调用最后一次):文件 "/home/ubuntu/.local/lib/python3.6/site-packages/urllib3/connectionpool.py",第 706 行,在 urlopen 中 分块=分块,文件“/home/ubuntu/.local/lib/python3.6/site-packages/urllib3/connectionpool.py”, 第 382 行,在 _make_request 中 self.validate_conn(conn) 文件“/home/ubuntu/.local/lib/python3.6/site-packages/urllib3/connectionpool.py”, 第 1010 行,在 validate_conn 中 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_socket 中 袜子,上下文,tls_in_tls,server_hostname=server_hostname 文件“/home/ubuntu/.local/lib/python3.6/site-packages/urllib3/util/ssl.py”, 第 472 行,在 _ssl_wrap_socket_impl 中 返回 ssl_context.wrap_socket(sock,server_hostname=server_hostname) 文件“/usr/lib/python3.6/ssl.py”, 第 407 行,在 wrap_socket 中 _context=self,_session=session) 文件“/usr/lib/python3.6/ssl.py”,第 817 行,init self.do_handshake() 文件“/usr/lib/python3.6/ssl.py”,第 1077 行,在 do_handshake 中 self._sslobj.do_handshake() 文件“/usr/lib/python3.6/ssl.py”,第 689 行,在 do_handshake 中 self._sslobj.do_handshake() ssl.SSLError: [SSL: CERTIFICATE_VERIFY_Failed] 证书验证失败 (_ssl.c:852)
在处理上述异常的过程中,又发生了一个异常:
回溯(最近一次调用最后一次):文件 "/home/ubuntu/.local/lib/python3.6/site-packages/requests/adapters.py",第 449 行,发送 timeout=timeout File "/home/ubuntu/.local/lib/python3.6/site-packages/urllib3/connectionpool.py",第 756 行,在 urlopen 中 方法,网址,错误=e,_pool=self,_stacktrace=sys.exc_info()[2] 文件 "/home/ubuntu/.local/lib/python3.6/site-packages/urllib3/util/retry.py",第 574 行,递增 引发 MaxRetryError(_pool,url,error 或 ResponseError(cause)) urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='sandpit.dvshub.com.au',port=19443):最大 重试次数超过 url:/Bus/VerificationServiceBus.svc/https (由 SSLError(SSLError(1,'[SSL: CERTIFICATE_VERIFY_Failed] 证书验证失败 (_ssl.c:852)'),))
在处理上述异常的过程中,又发生了一个异常:
回溯(最近一次调用最后一次):文件“Soap.py”,第 20 行,在 client = Client('https://sandpit.dvshub.com.au:19443/Bus/VerificationServiceBus.svc/https',key)) 文件“/home/ubuntu/.local/lib/python3.6/site-packages/zeep/client.py”, 第 73 行,在 init 中 self.wsdl = Document(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._get_xml_document(location) File "/home/ubuntu/.local/lib/python3.6/site-packages/zeep/wsdl/wsdl.py",第 156 行,在 _get_xml_document 中 位置,self.transport,self.location,settings=self.settings 文件“/home/ubuntu/.local/lib/python3.6/site-packages/zeep/loader.py”, 第 79 行,在 load_external 中 content = transport.load(url) 文件“/home/ubuntu/.local/lib/python3.6/site-packages/zeep/transports.py”, 第 122 行,加载中 content = self._load_remote_data(url) 文件“/home/ubuntu/.local/lib/python3.6/site-packages/zeep/transports.py”, 第 134 行,在 _load_remote_data 中 response = self.session.get(url,timeout=self.load_timeout) 文件“/home/ubuntu/.local/lib/python3.6/site-packages/requests/sessions.py”, 第 555 行,在 get 返回 self.request('GET',**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 行,发送 引发 SSLError(e,request=request) requests.exceptions.SSLError: HTTPSConnectionPool(host='sandpit.dvshub.com.au',port=19443): Max 重试次数超过 url:/Bus/VerificationServiceBus.svc/https (由 SSLError(SSLError(1,))
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)