2016-09-26 54 views
2

我正在使用Twisted(16.3)和Treq(15.1)在Python(2.7)中进行异步请求。禁用SSL证书检查扭曲代理

我对通过HTTPS的一些请求存在问题。

有些网站使他们的请求时,有一个无效的证书,因此,我得到这个:

twisted.python.failure.Failure OpenSSL.SSL.Error 

我希望我的客户信任任何服务器,包括那些没有证书或自签名的证书。

如何禁用我的客户端上的证书检查?

这是一个问题基本上是相同的,以我的:https://stackoverflow.com/questions/34357439/ssl-options-for-twisted-agents

谢谢!

回答

4

过去几天我也一直在尝试这样做。尽我所有的努力来规避证书验证,我可以很容易地创建了一对钥匙,并在我的快乐方式:D。我发现this commenttreq问题板,monkeypatches问题:

from twisted.internet import _sslverify 
_sslverify.platformTrust = lambda : None 

我敢肯定有“正确”这样做的一个令人费解的方式,但它不会是值得在我看来的努力。我做了一个补丁,它不会覆盖platformTrust(),我会尽量让它合并,但我不会屏住呼吸。从我看到的有关信任根,ssl和证书的一些错误评论的语气中,我不认为它会被合并。希望这有助于。

+0

嘿!感谢你的回答!我也看到了这个评论,但它并没有帮助我。我正在使用'twisted.web.client import agent'中的代理来处理我的请求。我在猜测代码,'_sslverify.platformTrust = lambda:None'特别覆盖了platformTrust,什么都不做。你知道,是否适用于代理商?那么,如果使用代理商,还有什么应该改变? – mayk93

+0

它为我工作,我也使用自定义代理 –

+0

这一直暗示我近一天了。我无法相信Python/Twisted在处理生产/开发场景的证书验证方面有多糟糕 - 在python社区中使用真实证书eveyone,还是使用自己的CA来污染他们的机器,还是仅仅测试SSL/TLS? – jmc