【发布时间】:2013-06-30 12:00:18
【问题描述】:
目前使用libmproxy,而后者又使用telnetlib,向HTTPS 网页发出请求。但是,会引发以下错误:
Error: [('SSL routines', 'SSL3_READ_BYTES', 'tlsv1 alert unknown ca')]
我认为这与无法验证为页面使用的证书提供担保的 CA 的身份有关。我认为应该有一个可以打开(或关闭)的设置来绕过验证 - 我对验证数字签名者的身份不感兴趣。
我认为一种可能的、丑陋的解决方案可能是修补代码以捕获异常并忽略它,但我宁愿有一种更清洁、更受支持的方法。
什么是避免/解决这个问题的好方法?
非常感谢!
【问题讨论】:
-
您是否知道绕过验证会使连接容易受到潜在的 MITM 攻击?
-
是的。这是一个本质上不安全的环境,进入潜在的不安全情况是“可以的”。不过,感谢您的提醒:)
-
我试图深入研究这个问题,但这并不是一个真正的“python”问题——答案将特定于底层库。看起来libmproxy使用了使用openssl库的netlib,所以我必须首先查看openssl库并弄清楚如何在那里关闭验证,然后看看netlib是否有办法激活它,然后看看libmproxy是否有办法激活使 netlib 做的事情,使 openssl 不验证证书..
-
我尝试了来自:mitmproxy.org/doc/scripting/libmproxy.html 的示例,并成功加载了一个没有受信任 CA 的网站。你能发布一些关于你如何使用lib的代码吗?或导致问题的示例链接?你有客户端 ca 文件吗?
-
您查看过配置选项吗?也许尝试设置 no_upstream_cert=True?默认值:Config(certfile = None, cacert = None, clientcerts = None, no_upstream_cert=False, body_size_limit = None, reverse_proxy=None, forward_proxy=None, transparent_proxy=None, authenticationator=None)
标签: ssl tcp certificate telnetlib libmproxy