21

当前使用libmproxy,后者又使用telnetlib向 HTTPS 网页发出请求。但是,会引发以下错误:

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

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

我认为一种可能的、丑陋的解决方案可能是修补代码以捕获异常并忽略它,但我宁愿有一种更清洁、更受支持的方法来做到这一点。

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

非常感谢!

4

2 回答 2

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

于 2014-07-16T06:01:21.397 回答
2

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

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

于 2014-01-10T16:58:52.063 回答