本文根据个人经验介绍如何用Wireshark(Ethereal的新名字)去查看捕捉到的SSL(包括HTTPS)里被加密的消息。
大家在使用Tomcat等服务器配置成HTTPS(基于TLS/SSL)后,调试时往往需要用Wireshark去抓包,并希望查看其中的HTTP 消息。但是HTTPS的通讯是加密的,所以默认情况下你只能看到HTTPS在建立连接之初的交互证书和协商的几个消息而已,真正的业务数据(HTTP消息)是被加密的,你必须借助服务器密钥(私钥)才能查看。即使在HTTPS双向认证(服务器验证客户端证书)的情况下,你也只需要服务器私钥就可以查看 HTTPS消息里的加密内容。
注:如何配置HTTPS服务器可以参考《如何用Tomcat和Openssl构建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)。
<protocol> ---- 表示SSL里加密的是什么协议,对于HTTPS,这项应该填HTTP。
<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>)
大家当初在配置HTTPS服务器,服务器私钥时,一般都会输入一个保护私钥的密码。那如何导出明文形式的服务器私钥呢,需要视情况而定:
(1)若你是像《如何用Tomcat和Openssl构建HTTPS双向认证环境(HTTPS客户端认证)》里所述的那样,用类似于如下命令生成服务器私钥的:
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-----”之前的内容删掉就可以了。
(3)若你的服务器私钥是用java的keytool命令生成的keystore文件,则要弄出来比较麻烦,建议服务器keystore最好用《如何用Tomcat和Openssl构建HTTPS双向认证环境(HTTPS客户端认证)》里的openssl生成服务器公钥私钥和证书的方法,生成pkcs12格式的keystore。
分享到:
相关推荐
(wireshark)ethereal的使用详解
摘要视图订阅manjingliu的编程之旅在校学,认真学编程登录 | 注册登录 | 注册安全(38)76494次千里之外15篇221篇1篇1条三、开始监听htt
GM/T 没有单独规范 SSL协议的文件,而是在SSL 技术规范中定义了国密SSL协议。 TLS协议号为0x0301 0x0302 0x0303,分别表示TLS1.0 1.1 1.2,而国密SSL版本号为0x0101,其参考了TLS1.1 本Wireshark支持解析该报文
computer network lab solution wireshark ssl
Wireshark的英文电子书,Wireshark and Ethereal Network Protocol Analyzer Toolkit,2007
网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识,当然,有的人也会“居心叵测”的用它来寻找一些敏感信息……
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。
终极网络嗅探 Wireshark绿色版(原Ethereal) [免费版] Wireshark是免费的网络协议检测程序,支持Unix,Windows。让您经由程序抓取运行的网站的相关资讯,包括每一封包流向及其内容、资讯可依操作系统语系看出,方便...
我使用过最好用的一款网络封包软件 网络封包分析软件的功能可想像成 "电工技师使用电表来量测电流、电压、电阻" 的工作 - 只是将场景移植到网络上,并将电线替换成网络线。 在过去,网络封包分析软件是非常昂贵,...
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
图解wireshark解密SSL报文,帮助更好的分析ssl通信中遇到的问题
使用wireshark 抓取QQ邮箱
说起Wireshark就不得不提Ethereal了,Ethereal和在Windows系统中常用的sniffer pro并称网络嗅探工具双雄,不过和sniffer pro不同的是Ethereal在Linux类系统中应用更为广泛。而Wireshark软件则是Ethereal的后续版本,...
wireshark是非常流行的网络封包分析...wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容,总结,如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP 就用wireshark.
主要用于介绍如何用wireshark解密SSL数据流量包网页
网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识当然,有的人也会“居心叵测”的用它来寻找一些敏感信息…… ...
LTE数传问题分析Wireshark使用指导书。Wireshark是一款自由、开源的包分析软件。主要用于网络问题定位、分析,软件和通信协议开发及教育。Wireshark原名Ethereal,2006年5月因为商标问题改名Wireshark。Wireshark是...
Wireshark2.2.5中文版windows32位,以前的名字Ethereal,很好的抓包工具。
6/159 Syngress - Wireshark & Ethereal Network Protocol Analyzer Toolkit.2007
Wireshark Ethereal 1.11.2 32位+64位 稳定版(网络分析工具,抓包工具)-附件资源