如何用Wireshark(Ethereal)查看HTTPS(SSL)消息里的加密内容

如题所述

大师在应用Tomcat等办事器设备成HTTPS(基于TLS/SSL)后,调试时往往须要用Wireshark去抓包,并欲望查看此中的HTTP 消息。然则HTTPS的通信是加密的,所以默认景象下你只能看到HTTPS在建树连接之初的交互证书和协商的几个消息罢了,真正的营业数据(HTTP消息)是被加密的,你必须借助办事器密钥(私钥)才干查看。即使在HTTPS双向认证(办事器验证客户端证书)的景象下,你也只须要办事器私钥就可以查看 HTTPS消息里的加密内容。
1. 设备Wireshark
选中Wireshark主菜单Edit->Preferences,将打开一个设备窗口;窗口左侧是一棵树(目次),你打开此中的 Protocols,将列出所有Wireshark支撑的和谈;在此中找到SSL并选中,右边窗口里将列出几个参数,此中“RSA keys list”即用于设备办事器私钥。该设备的格局为:
<ip>,<port>,<protocol>,<key_file_name>
各字段的含义为:
<ip> ---- 办事器IP地址(对于HTTPS即为WEB办事器)。
<port> ---- SSL的端口(HTTPS的端口,如443,8443)。
<key_file_name> ---- 办事器密钥文件,文件里的私钥必须是明文(没有暗码保护的格局)。
例如: 192.168.1.1,8443,http,C:/myserverkey/serverkey.pem
若你想设置多组如许的设备,可以用分号隔开,如:
192.168.1.1,8443,http,C:/myserverkey/clearkey.pem;10.10.1.2,443,http,C:/myserverkey/clearkey2.pem
2. 导出办事器密钥(私钥)的明文格局(即前面提到的<key_file_name>)
openssl req -newkey rsa:1024 -keyout serverkey.pem -keyform PEM -out serverreq.pem /
-outform PEM -subj "/O=ABCom/OU=servers/CN=servername"M
并且你的办事器私钥文件serverkey.pem还在,则可以如许导出办事器私钥明文文件:
openssl rsa -in serverkey.pem > clearkey.pem
履行号令式须要输入私钥的保护暗码就可以获得私钥明文文件clearkey.pem了。
(2)若你已把serverkey.pem丢了,但还有pkcs12格局的办事器证书库文件,该文件当初用类似于以下号令生成的:
openssl pkcs12 -export -in servercert.pem -inkey serverkey.pem /
-out tomcat.p12 -name tomcat -CAfile "¥HOME/testca/cacert.pem" /
-caname root -chain
则,你可以用下面号令把办事器私钥从tomcat.p12(pkcs12格局)文件里导出来:
openssl pkcs12 -in tomcat.p12 -nocerts -nodes -out clearkey.pem
履行号令式须要输入pkcs12的保护暗码。
然后编辑一下生成的clearkey.pem文件,把“-----BEGIN RSA PRIVATE KEY-----”之前的内容删掉就可以了。
温馨提示:答案为网友推荐,仅供参考
相似回答