如何忽略 pysimplesoap 中的 SSL 证书验证
How to ignore SSL certificate validation in pysimplesoap
我正在尝试使用 pysimplesoap 和 python 2.7.9
访问使用自生成证书的 Web 服务
from pysimplesoap.client import SoapClient
import base64
username = 'webuser'
password = 'webpassword'
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
# real address / login removed
client = SoapClient(wsdl='https://url:port/webservice.asmx?WSDL',
http_headers={'Authorization': 'Basic %s'%base64string}, sessions=True,
cacert=None)
response = client.StatusInfo(... removed ...)
print(response)
尝试此操作会引发错误消息
urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)>
提供了有关如何绕过该问题的提示,但是否有更简单的方法可以让我告诉 pysimplesoap 忽略所有 SSL 证书客户端错误。我正在使用 Windows7 并计划将代码移植到 Raspian/Debian Linux,因此解决方案不应依赖于操作系统。
在这里回答我自己的问题,
添加第一行和第三行将忽略认证验证
import ssl
from pysimplesoap.client import SoapClient
ssl._create_default_https_context = ssl._create_unverified_context
关于此问题的讨论时间更长 您可以在其中了解为什么这不是一个好主意...
我正在尝试使用 pysimplesoap 和 python 2.7.9
访问使用自生成证书的 Web 服务from pysimplesoap.client import SoapClient
import base64
username = 'webuser'
password = 'webpassword'
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
# real address / login removed
client = SoapClient(wsdl='https://url:port/webservice.asmx?WSDL',
http_headers={'Authorization': 'Basic %s'%base64string}, sessions=True,
cacert=None)
response = client.StatusInfo(... removed ...)
print(response)
尝试此操作会引发错误消息
urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)>
在这里回答我自己的问题, 添加第一行和第三行将忽略认证验证
import ssl
from pysimplesoap.client import SoapClient
ssl._create_default_https_context = ssl._create_unverified_context
关于此问题的讨论时间更长