如何调试SSL连接?

| 我有一个通过https连接到Web服务的客户端应用程序。我需要“嗅探” Web服务和客户端之间的所有网络流量,以检查一切是否正常,即,我必须调试连接。 我尝试了Wireshark,但是由于我没有服务器私钥,因此,wireshark屏幕上显示的数据当然是加密的。 当我无权访问服务器本身并因此无法访问私钥和其他相关内容时,是否可以观察客户端和Web服务之间的ssl网络流量? 提前致谢。     
已邀请:
        请参阅:调试SSL通信。 从理论上讲,我知道可以做到的-您可以设置与目标Web服务进行通信的代理,将您的应用程序指向通过此代理进行连接。它是一个已知的限制-Https假定您信任计算机上安装的所有代理和证书。这是中间人攻击的一种形式。 看看Fiddler是否有用。   中间人攻击      在一个   中间人攻击,攻击者   拦截用户流量以进行捕获   证书和其他相关   信息。然后,攻击者使用   该信息可访问实际   目标网络。在此期间   过程中,攻击者通常为   作为代理/网关呈现   向用户提供虚假的SSL VPN站点;这个   代理/网关通过任何   用户进入的身份验证   真正的目标网站。     
        你有安装python吗? 点安装mitmproxy mitmproxy -p 1234 甚至是一个视频给你 (顺便说一句,我必须在apt-get更新后在debian squeeze上apt-get安装python-lxml)     
        Burp Suite(甚至是免费版)允许您设置SSL \“ proxy \”,它将为您的应用程序提供不同的证书,并为您解密(并显示)流量。而且,如果您也想在localhost中测试服务器,它也允许您设置代理(我在Windows和Fiddler中无法使用Wireshark进行此操作)。     
        如果您无权访问服务器的私钥,那么您无能为力,无法查看SSL / TLS保护的内容。 (您至少会看到初始握手。) 如果您对客户端具有完全控制权,则可以编写一个伪造的服务器,该服务器具有您可以控制的私钥和证书,并将客户端发送的所有内容中继到实际服务器。为此,您需要使客户端信任自己的证书,因此需要对客户端进行控制。调整客户端上相应的“ 0”文件来执行DNS欺骗也可能会更容易,以使到正确主机名的连接转至假服务器。     

要回复问题请先登录注册