Web services 如何调试ssl连接?

Web services 如何调试ssl连接?,web-services,debugging,ssl,https,sniffing,Web Services,Debugging,Ssl,Https,Sniffing,我有一个通过https连接到web服务的客户端应用程序。我需要“嗅探”web服务和我的客户端之间的所有网络流量,以检查是否一切正常,也就是说,我必须调试连接 我尝试过Wireshark,但由于我没有服务器私钥,Wireshark屏幕上显示的数据当然是加密的 当我无法访问服务器本身,因而无法访问私钥和其他相关内容时,是否有办法观察客户端和web服务之间的ssl网络流量 提前谢谢 请参见以下内容: 我知道理论上这是可以做到的——您可以设置一个与目标web服务通信的代理,让您的应用程序通过该代理进行连

我有一个通过https连接到web服务的客户端应用程序。我需要“嗅探”web服务和我的客户端之间的所有网络流量,以检查是否一切正常,也就是说,我必须调试连接

我尝试过Wireshark,但由于我没有服务器私钥,Wireshark屏幕上显示的数据当然是加密的

当我无法访问服务器本身,因而无法访问私钥和其他相关内容时,是否有办法观察客户端和web服务之间的ssl网络流量

提前谢谢

请参见以下内容:

我知道理论上这是可以做到的——您可以设置一个与目标web服务通信的代理,让您的应用程序通过该代理进行连接。这是一个已知的限制-Https假定您信任计算机上安装的所有代理和证书。这是一种生活方式

看看是否有用

在一个 中间人攻击,袭击者 拦截用户流量以捕获 全权证书和其他相关文件 信息。然后攻击者使用 此信息用于访问实际的 目的地网络。在 过程中,攻击者通常提供服务 作为代理/网关,提供 向用户提供虚假的SSL VPN站点;这 代理/网关传递任何消息 用户输入的身份验证 真正的目的地


如果您无法访问服务器的私钥,那么您就无法查看SSL/TLS保护的内容。(你至少可以看到最初的握手。)


如果您对客户机拥有完全控制权,则可以编写一个伪服务器,该服务器将具有您控制的私钥和证书,并将客户机发送的所有内容中继到实际服务器。为此,您需要使客户机信任您自己的证书,因此您需要控制客户机。调整客户端上相应的
主机
文件来执行DNS欺骗可能会更容易,以便将正确的主机名连接到假服务器。

是否安装了python

pip安装

mitmproxy-第1234页

即使是给你的


(顺便说一句,我必须在一次apt get更新后在debian squeeze上安装python lxml)

(甚至是免费版)允许您设置SSL“代理”,它将向您的应用程序提供不同的证书,并为您解密(和显示)流量。如果您想在localhost中使用服务器进行测试,它也允许您设置代理(这是我在Windows中无法使用Wireshark和Fiddler所做的)。

HTTP代理将无法让您看到它所使用的HTTPS流量:它将所有内容直接中继到目标服务器。(你可以看到服务器的地址和端口。)@Bruno,一个普通的HTTP代理不会,但是你可以有一个这样做的代理。有一些公司的监控工具可以做到这一点。它依赖于在您的计算机上添加一个可靠的证书,并通过代理屏蔽与HTTPS服务器的所有通信。不,您不必信任HTTP代理,HTTPS连接才是安全的,只有您的计算机上的CA证书。HTTP代理不拦截或更改HTTPS连接,它几乎不转发它,包括整个SSL/TLS交换(请参阅HTTP
CONNECT
method)。很抱歉,我在以前的评论中没有看到您的响应。是的,有特定类型的代理服务器可以做到这一点,只要客户机的CA证书存储配置为确实接受正式的MITM。这正是Fiddler所做的。