我已经安装了charles(或任何其他mitm代理),将其证书安装为根CA,运行代理127.0.0.1:8889。
但是,python中的简单request.get('https://stackoverflow.com/')无法正常工作,它给出了错误证书验证失败。查尔斯文档提出了强制信任证书的源代码。 session.verify =“ charles-ssl-proxying-certificate.pem”。与浏览器类似,说明位于https:// https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
但是,如果我想查看任意.exe的https流量怎么办?我无权访问其来源,并且它不提供任何导入证书的方法(如浏览器)。
答案 0 :(得分:0)
似乎任何应用程序都有自己的受信任存储区,而python似乎也不例外。
从您的Python代码中尝试这种方法:
因此,在python中,这样的自签名证书也会出错。我们可以通过证书来解决
req = urlopen(“ https://dev.tarunlalwani.com/testme”,cafile =“ / vagrant / certs / selfsigned.crt”) req.read() 'GET / testme \ n'
来源:http://tarunlalwani.com/post/self-signed-certificates-trusting-them/
上面的链接还包含如何在更多应用程序和多个操作系统中信任您的自签名证书的说明。
某些上下文:
在工作中,我们使用Ubuntu,并且位于防火墙后面,该防火墙解密并检查所有https通信,然后再次对其进行加密,以将其发送回网络,因此我们使用自定义的自签名证书,这使我发现我需要添加我使用的任何应用程序的自签名证书。