python-2.7 - 如何忽略 pysimplesoap 中的 SSL 证书验证

标签 python-2.7 ssl-certificate 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)>

关于如何通过 fixing urllib2 绕过问题的提示,但是是否有一种更简单的方法可以让我告诉 pysimplesoap 忽略所有 SSL 证书客户端错误。我正在使用 Windows7 并计划将代码移植到 Raspian/Debian Linux,因此解决方案不应依赖于操作系统。

最佳答案

在这里回答我自己的问题, 添加第一行和第三行将忽略认证验证

import ssl 
from pysimplesoap.client import SoapClient 
ssl._create_default_https_context = ssl._create_unverified_context 

关于这个 here 的讨论更长在哪里可以了解为什么这不是一个好主意...

关于python-2.7 - 如何忽略 pysimplesoap 中的 SSL 证书验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33298508/

相关文章:

python - App Engine 是否支持客户端证书

python - 从用户指定的目录导入 python 模块?

python - 在 Python 2.7 中格式化

ssl - Certbot 自动配置后站点未启用 ssl

kubernetes - 过期后更新kubernetes pki

java - 非法 key 大小

python - sklearn "transport"训练模型的最佳实践

python-2.7 - 更改 geopandas 中的单个补丁颜色

python - 如何使用 pysimplesoap 构造 SOAP 消息?

python SOAP 客户端库