安装支持spdy的nginx并且通过wireshark解密spdy协议

   spdy的存在主要是为了解决一些http存在的问题。现在一些主流的代理服务器都已经支持spdy,例如nginx,Apache。本文主要介绍在ubuntu 先安装支持spdy的nginx,以及在win7下安装wireshark,抓取spdy协议。

第一步,编译安装openssl,用于生成nginx服务器证书

cd /tmp
wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
tar zxvpf openssl-1.0.1e.tar.gz
./configure
make
make install


第二步,编译安装nginx

cd /tmp
wget http://nginx.org/download/nginx-1.7.7.tar.gz
tar zxvpf nginx-1.7.7.tar.gz
cd nginx-1.7.7
./configure --with-http_ssl_module --with-http_spdy_module --with-openssl=/tmp/openssl-1.0.1e
make
make install

第三步,创建一个私钥和证书

生成一个私钥用于测试
cd /temp
openssl genrsa -des3 -out ./serverkey.pem 2048
要求输入一个通行密码(通行短语)

生成一个证书用于测试
openssl req -new -x509 -key ./serverkey.pem -out ./servercert.pem -subj  '/C=GB/ST=XX/O="My Org"/CN="Wireshark dissectable Cert"'
需要输入通行密码

去除私钥的密码保护,下面wireshark解密需要这个私钥
openssl rsa –in ./serverkey.pem –out ./server.pem
需要输入通行密码

拷贝证书和私钥到nginx的配置目录
sudo cp serverkey*    /usr/local/nginx/conf

第四步,修改nginx的配置文件,并且启动nginx

修改配置文件
    server {
        listen       443 ssl spdy;
        server_name  localhost;
		
	ssl on;
        ssl_certificate      servercert.pem;
        ssl_certificate_key  serverkey.pem;

        ssl_session_timeout  5m;
        #ssl_ciphers  HIGH:!aNULL:!MD5;
	ssl_ciphers  RSA;
   	#ssl_prefer_server_ciphers  on;

        location / {
            root   html;
   	        index  index.html index.htm;
        }
    }
注意 ssl_ciphers RSA;,这样做主要是为了wireshark能够对ssl进行解密,如果不这样配置那么即使有了私钥也解密不了。

启动nginx
cd /usr/local/nginx/sbin
sudo ./nginx

第五步,在win7上安装最新版的wireshark
安装wireshark
下载地址: https://1.as.dl.wireshark.org/win32/Wireshark-win32-1.12.1.exe

在wireshark的ssl协议中添加私钥
菜单:Edit->Preferences->Protocols->SSL->Edit
安装支持spdy的nginx并且通过wireshark解密spdy协议_第1张图片
解释
nginx服务器ip和端口:192.168.230.136和443
私钥路径:D:\server.pem

第五步,启动wireshark抓取spdy包

启动wireshark,输入过滤条件


打开nginx的首页
通过chrome浏览器打开  https://192.168.230.136


通过wireshark查看抓包结果




最后要感谢以下两位的博客,参考了他们的很多东西。
https://www.sinosky.org/ssl-and-spdy-enabled.html
http://www.ibm.com/developerworks/cn/web/tutorials/wa-tomcat/

你可能感兴趣的:(安装支持spdy的nginx并且通过wireshark解密spdy协议)