- A+
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
解释
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/
from:
http://blog.csdn.net/chq123456/article/details/40710611
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫