我们在接口测试和故障诊断调试时,需要查看消息里边的内容,如果是http消息可以通过wireshark抓包分析软件看到,但https消息内容在传输过程中是加密的,怎样才能看到https加密后的消息呢? 从技术上来说,需要拿到密钥,通过密钥对消息内容进行解密。 从难易程度上来说,有两个难题:获取密钥和密钥解密。密钥是不会在交互过程中传输的,对于第3方,拿到密钥的可能性不大或者非常难。对于密钥解密,非专业人士是不易做到的,最好的方式是借助于现有的工具。 选中Wireshark主菜单Edit->Preferences,将打开一个配置窗口;窗口左侧是一棵树(目录),你打开其中的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了。今天介绍一个方法:wireshark中查看https消息内容的方法
如何生成没有密码保护的密钥?
©著作权归作者所有