如何避免libmproxy中的'tlsv1 alert unknown unknown'错误?

时间:2013-07-02 22:51:15

标签: ssl tcp certificate telnetlib libmproxy

目前正在使用libmproxy,而telnetlib使用{{3}}来向HTTPS网页发出请求。但是,会引发以下错误:

Error: [('SSL routines', 'SSL3_READ_BYTES', 'tlsv1 alert unknown ca')]

我认为这与无法验证担保页面使用的证书的CA的身份有关。我认为应该有一个可以打开(或关闭)的设置,可以绕过验证 - 我对验证数字签名者的身份不感兴趣。

我认为一种可能的,丑陋的解决方案可能是修补代码以捕获异常并忽略它,但我宁愿采用更清晰,更受支持的方式来实现它。

避免/解决此问题的好方法是什么?

非常感谢!

2 个答案:

答案 0 :(得分:3)

如果您有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的网页似乎可以加载自定义证书。如果您已经拥有客户已经信任的内部证书颁发机构,那么您可能只想从那里生成证书。

答案 1 :(得分:2)

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

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