【发布时间】:2019-02-25 15:37:46
【问题描述】:
尝试使用 suds 发送 SOAP 请求,我正在使用 Python 2.7.6。
我不是很精通安全问题我被引导相信无论是我的机器还是服务器机器上的安全密钥太小,我不知道如何解决。我是否会生成一些新密钥并创建自定义开瓶器?任何帮助/指导都会有所帮助。
堆栈跟踪:
Traceback (most recent call last):
File "read_xml.py", line 71, in <module>
client.service.PO(purchase_orders)
File "/usr/local/lib/python2.7/dist-packages/suds/client.py", line 542, in __call__
return client.invoke(args, kwargs)
File "/usr/local/lib/python2.7/dist-packages/suds/client.py", line 602, in invoke
result = self.send(soapenv)
File "/usr/local/lib/python2.7/dist-packages/suds/client.py", line 637, in send
reply = transport.send(request)
File "/usr/local/lib/python2.7/dist-packages/suds/transport/https.py", line 64, in send
return HttpTransport.send(self, request)
File "/usr/local/lib/python2.7/dist-packages/suds/transport/http.py", line 77, in send
fp = self.u2open(u2request)
File "/usr/local/lib/python2.7/dist-packages/suds/transport/http.py", line 118, in u2open
return url.open(u2request, timeout=tm)
File "/usr/lib/python2.7/urllib2.py", line 404, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 422, in _open
'_open', req)
File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 1222, in https_open
return self.do_open(httplib.HTTPSConnection, req)
File "/usr/lib/python2.7/urllib2.py", line 1184, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [Errno 1] _ssl.c:510: error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small>
我正在查看以下链接
Python - requests.exceptions.SSLError - dh key too small
不确定如何实现他们所说的,再次感谢您的帮助
【问题讨论】:
-
您必须将连接配置为不使用 Diffie-Helman (DH) 或更改服务器上的内容,遵循 weakdh.org/sysadmin.html 的说明。如果您控制服务器,最好修复其安全性,从而更改其 dhparams,如上一个链接中所述。如果你不控制服务器,你必须使用第一个选项。
标签: python security ssl soap urllib2