已将博客配置为SSL-ONLY

August 9th, 2014 Leave a comment Go to comments

Google刚刚做出了一个决定,将网站是否通过https访问计入排名权重,虽然目前仅仅只占1%,但是会考虑今后提高权重。作出这一决定的原因主要是愈演愈烈的网络信息窃取案件,特别是NSA事件受到了公众和企业前所未有的关注,信息安全的保护刻不容缓。相信Google的这一做法会对提高互联网整体安全性起到积极推动作用。
趁着这阵风,我也把博客配置为仅能通过https访问。虽然会牺牲一丁点性能,但是安全性提高了不少,国内ISP再也不能通过http劫持来挂广告了,博客里说说GFW坏话分享分享翻墙心得也不会被GFW发现了 ^_^

下面把我具体的配置过程分享下。首先是这次主要参考的几个网页:
https://wiki.mozilla.org/Security/Server_Side_TLS
https://www.startssl.com/?app=42
http://serverfault.com/questions/250476/how-to-force-or-redirect-to-ssl-in-nginx

接着是具体配置过程:
一、申请免费的SSL证书
StartSSL是一个提供长期免费ssl证书的机构,而且它颁发的证书,浏览器的接受率也很高,只要你用的不是太古老的浏览器(IE6去死),基本都没啥问题。个人博客网站也不需要特地花钱买ssl证书,即使是那些廉价的证书,比如Comodo。我的意见是要买就买最贵的,比如VeriSign,要不然就直接用免费的StartSSL足够了。廉价证书买来没意思,最多也就是能免费reissue,而遇到heartbleed这种需要reissue证书的情况实在太少见了。

具体申请过程一Google一大把,这里直接略过。只说一下从StartSSL取得的几样东西:
1. 你的私钥。本文中记作ssl.key
2. 你自己设置的私钥的密码。
3. 你的公钥(证书)。本文中记作ssl.crt
4. 用于登陆StartSSL的个人证书。注册时由StartSSL生成证书并加到你的系统里,可以在Internet选项中将其导出备份。
5. ca.pem & sub.class1.server.ca.pem: CA和StartSSL的证书。

二、处理证书&生成所需文件
1. 导出不含密码的Private key(否则每次Nginx启动时都问你要密码):

2. 生成Diffie-Hellman keys:

3. 如果你忘记保存CA和StartSSL的证书,用下列命令获取它们:

然后将你自己的证书和上面两个证书整合到一个文件里。注意这一步非常重要,否则如果只指定你自己的证书的话,Firefox会报sec_error_unknown_issuer错误(Chrome/IE下倒是正常)。

三、配置Nginx
本博客(wordpress.youran.me)使用Nginx,所以只提供Nginx下的配置方法。
修改网站对应的.conf文件。下面是本博客的一个例子,配置中的各种证书文件路径,需根据个人实际情况修改。

其中粗体字是这次追加的内容,粗斜体部分是将所有http流量301 redirect到https去,保证纯SSL访问。ssl_protocols和ssl_ciphers采用了兼容性比较高的选项,主要考虑到老版本IE及手机浏览器。

修改好以后,用nginx -t -c /path/to/your/conf 命令测试一下,没问题的话就重启Nginx试试效果吧!

四、结尾语
如果你想测试你的网站的SSL强度如何,可以去下面这个网站:
https://www.ssllabs.com/ssltest/analyze.html
会生成详细的评测结果,涵盖了SSL的各种方面。这里贴一下本网站的评测结果:
SSL Validation
看起来已经非常安全了。

本文为悠然居(https://wordpress.youran.me/)的原创文章,转载请注明出处!

声明: 本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: 已将博客配置为SSL-ONLY
  1. youran | #1
    August 10th, 2014 at 01:10 |

    补充一点,第二步里可以只将你的网站证书和StartSSL证书整合成ssl-unified.crt,CA证书不需要。虽然StartSSL官方教程里将CA证书也整合了进去。

    Google Chrome 37.0.2062.68 Google Chrome 37.0.2062.68 Windows 7 x64 Edition Windows 7 x64 Edition
  2. root | #2
    August 10th, 2014 at 01:12 |

    用访客身份留个言,测试测试W3 Total Cache。
    WP Super Cache在这次折腾后罢工了,原因不明。
    用了W3 Total Cache,页面响应速度已经很接近http模式

    Firefox 31.0 Firefox 31.0 Windows 7 x64 Edition Windows 7 x64 Edition
  3. youran | #3
    August 21st, 2014 at 23:45 |

    发现百度不收录我的https站点的内容。不过不在乎,Google秒收就行。这年头用百度查资料的怎么好意思说自己是搞IT的

    Google Chrome 36.0.1985.143 Google Chrome 36.0.1985.143 Windows 7 x64 Edition Windows 7 x64 Edition
  1. No trackbacks yet.