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

标签 ssl tcp certificate telnetlib libmproxy

目前正在使用 libmproxy ,它又使用 telnetlib , 向 HTTPS 网页发出请求。但是,出现以下错误:

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

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

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

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

非常感谢!

最佳答案

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

关于ssl - 如何避免 libmproxy 中的 'tlsv1 alert unknown ca' 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17437100/

相关文章:

ssl - 发生空闲超时事件时,带有 SSL 的 Netty 会抛出 ClosedChannelException

.htaccess - 仅打开一页的非 ssl

delphi - 谁将 TCP 窗口大小设置为 0,Indy 还是 Windows?

c# - 你能有一个没有线程的 TCP 客户端吗

java - AWS S3 对等方未通过身份验证

apache - Apache 上的单个网站默认使用 HTTPS

Facebook 信使平台。使用 SSL 设置 Webhook

c# - 有什么方法可以使用 TCP 隧道连接到 Visual Fox pro 等文档数据库

c# - 无效的基本约束 : A certificate's basic constraint extension has not been observed

javax.net.ssl.SSLProtocolException : Extensions not allowed in v2 certificate