如何忽略Python中的SSL证书名称不匹配(xmlrpc)

时间:2015-08-20 14:55:20

标签: python python-3.x ssl

尝试使用Python的XML-RPC库与服务器通信时:

import xmlrpc.client
url = 'https://12345/'

api = xmlrpc.client.ServerProxy(url)
print(api.system.listMethods())

我收到此错误:

ssl.py  in match_hostname ssl.CertificateError: hostname '12345' doesn't match '*.hostname.com'

显然,我可以改变ssl.py的来源来忽略这一点,但是有更好的方法,比如我可以设置的参数等吗?

1 个答案:

答案 0 :(得分:1)

由于显而易见的原因,xmlrpc库中没有此类设置。因此,实现此目的的唯一方法是从ssl.py中删除验证。

注意:我正在编写一个真实世界的系统,通过HTTPS与外部提供商进行通信。但在我们能够实现它之前,我们必须使用他们的dev服务器进行测试,该服务器具有不同的主机名,因此证书错误。因此,没有安全风险,因为只使用了dev-server凭证和一些虚拟数据。