【问题标题】:How to avoid the 'tlsv1 alert unknown ca' error in libmproxy?如何避免 libmproxy 中的“tlsv1 alert unknown ca”错误?
【发布时间】: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


【解决方案1】:

如果你有 Windows 客户端,似乎你可以使用 certutil。

http://support.microsoft.com/kb/555252

对于 Linux 客户端,您可以使用:

sudo mkdir /etc/share/certificates/extra && cp cacert.crt /user/share/certficates/extra/cacert.crt
sudo dpkg-reconfigure ca-certificates

对于 Mac 客户端:

sudo security add-trusted-cert -d -r trustRoot -k \
"/Library/Keychains/System.keychain" \
"/private/tmp/certs/certname.cer"

(从https://apple.stackexchange.com/questions/80623/import-certificates-into-system-keychain-via-the-command-line得到这个答案)

此外,阅读 libmproxy 的网页,它似乎能够加载自定义证书。如果您已经拥有客户已经信任的内部证书颁发机构,您可能只想从那里生成证书。

【讨论】:

    【解决方案2】:

    当提供给用户的 proxySG 证书未由受信任的 CA 签名时,就会发生这种情况。

    我也遇到了这个错误,我通过组策略将 CA(用于 ssl 代理的那个)推送到实际浏览器来修复它。

    【讨论】:

    • 听起来可能值得研究。您能否详细说明如何操作以及这些术语的含义?
    猜你喜欢
    • 2021-07-21
    • 2017-09-29
    • 2018-04-05
    • 2021-09-27
    • 2022-10-12
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多