SSL & SPDY

2015-11-13 更新:本文内容已经过时,并且部分配置可能有潜在的问题,不建议使用,仅供参考。

2014-04-09 更新:升级openssl版本(1.0.1f)、nginx版本,避免heartbleed攻击。

博客启用了强制https访问,来自非搜索引擎的朋友都会被自动跳转到https下。除了传输数据更安全之外,也是为了能够启用SPDY。

说到SPDY还真是蛮头疼,因为用的是nginx,不像apache那样直接有SPDY插件。上网查了下,了解到nginx 1.4.X及以上的版本自带了SPDY/2,然后就去升级nginx了。升级完,写完配置文件,在我重启的时候,突然给我来这么一句

nginx: [warn] nginx was built without OpenSSL NPN support, SPDY is not enabled for 0.0.0.0:443 in …..

似乎是启用SPDY失败了,然后在浏览器中测试,虽然网站可以访问,但并没有启用SPDY。接着就去搜原因,发现竟然是openssl的版本过旧了。旧就升级呗~网上找了些教程去升级,可升级好了再次启动nginx,依然提示这个错误。当时就陷入了迷茫,搞不懂哪里出错了,又查了几遍问题,依然找不到原因,最后只好恢复配置文件放弃了。

第二天(昨天),因为coxxs.me也要启用SSL,又一次在网上查资料,也顺便查了下SPDY,突然发现了这篇文章,看了一下顿悟了,可能是nginx没有配置到最新版的openssl,用的还是旧版,于是稍微修改了下代码,照着他的操作,以下是我的大致流程:

[code lang=”bash”]#下载并编译openssl(不安装)
cd /root/
wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
tar xfz openssl-1.0.1g.tar.gz
cd openssl-1.0.1g
./config
make
#接着结束nginx进程,把/usr/local/nginx重名为nginx_old
cd /root/
wget http://nginx.org/download/nginx-1.5.13.tar.gz
tar xfz nginx-1.5.13.tar.gz
cd nginx-1.5.13
./configure –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_gzip_static_module –with-ipv6 –with-http_spdy_module –with-openssl=/root/openssl-1.0.1g
make
make install
#安装完成后,删除/usr/local/nginx/conf,将/usr/local/nginx_old/conf复制到/usr/local/nginx/conf,重启服务器即可[/code]

在nginx相应的.conf里面配置了之后,SSL & SPDY就成功开启了。用Chrome(或开启了SPDY的浏览器)访问本站,是不是快很多了呢?

《SSL & SPDY》有16个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注