我们在接口测试和故障诊断调试时,须要查察消息里边的内容,假如是http消息可以通过wireshark抓包分析软件看到,但https消息内容在传输过程中是加密的,怎样才华看到https加密后的消息呢?
从技能上来说,须要拿到密钥,通过密钥对消息内容举行解密。
从难易水平上来说,有两个困难:获取密钥和密钥解密。密钥是不会在交互过程中传输的,对于第3方,拿到密钥的大概性不大大概非常难。对于密钥解密,非专业人士是不易做到的,最好的方式是借助于现有的工具。
本日先容一个方法:wireshark中查察https消息内容的方法
选中Wireshark主菜单Edit->references,将打开一个设置窗口;窗口左侧是一棵树(目次),你打开此中的Protocols,将列出全部Wireshark支持的协议;找到SSL并选中,右边窗口里将列出几个参数,“RSA keys list”用于设置服务器私钥,其格式为:<ip>,<port>,<protocol>,<key_file_name>
各字段的寄义为:
<ip> ---- 服务器IP所在
<port> ---- 服务器SSL的端口
<protocol> ---- 表现SSL里加密的是什么协议,对于HTTPS,这项应该填HTTP。
<key_file_name> ---- 服务器密钥文件,文件里的私钥必须是明文(没有暗码掩护的格式)。
假如设置单个如许的设置(该抓包内容可以是客户端的,也可以是服务端的),填写为192.168.1.1,8443,http,C:/myserverkey/serverkey.pem
假如设置多个如许的设置(该抓包内容是客户端的,须要查察该客户端和多个https服务端的消息内容),可以用分号隔开,填写为192.168.1.1,8443,http,C:/myserverkey/clearkey.pem;10.10.1.2,443,http,C:/myserverkey/clearkey2.pem
如何天生没有暗码掩护的密钥?
用假如天生服务器私钥的下令雷同如下:
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了。 |