已经整站部署SSL,暂时不怕tw1p被封锁了

前两天twip被墙,原理难以捉摸。具体特征如下:只有我一个人用,流量不大,不知怎么被盯上的。我的原先twip路径中不含twip。也就是说,这次封锁不是【twip】url关键词过滤。在换了路径之后,twip好了。这就是说,也不是twip下面的其他文件的文件名url过滤。主机域名和IP完好,没有被墙,也排除了DNS污染和IP封锁。那到底是怎么被墙的呢?我没心情去抓包,随它去吧,只是感觉和之前的手段有些区别。另外,在修复twip的时候,我忘记改Nginx的rewrite,白忙活了好久。没办法,水平还是低啊。

经twip这么一折腾,我感觉不太妙。最近风声紧张大家也都清楚,可是这么大规模的封锁twip这种情况我还没见过。二二零那段时间,gae也再次暂时墙掉了。这让我感到压力很大,辛辛苦苦建起来的VPS,20刀的域名,可不想某一天就突然挂掉了。于是今天花了几个小时,根据教程申请了startssl 的免费SSL证书,关闭了主域名的http服务。申请SSL的过程并不复杂,但是教程中有些容易忘记的,在此留个笔记。

申请StartSSL免费SSL证书:

  1. 不能使用Chrome浏览器和IE,必须用Firefox
  2. 在注册的时候的地址需要填写的像样,不能看上去很假。StartSSL是人工审核的,很可能因为地址信息违法而拒绝申请。
  3. 申请完成后,按步骤会自动下载好验证身份用的证书。这个证书是用户在StartSSL网站的唯一身份验证,因此需要导出来备份好。
  4. 申请证书时第一步获取的key一定要存好
  5. 在申请webSSL证书时,需要填写一个主域名和一个二级域名。免费用户申请完成后,只有主域名和二级域名能被浏览器验证为安全的。例如:主域名填写hyspace.cc,二级域名填写test.hyspace.cc后,www.hyspace.cc不能被验证为安全链接。因此一般没有特殊二级域名需求的,二级域名最好写www.yourdomain.xx。
  6. 申请webSSL证书的请求提交后,3小时内会有邮件提醒,这时在获取证书的页面里,可以看到你的二级域名出现在下拉菜单中。注意,网站提示会有主域名和二级域名两个证书,但是实际上只有一个,这个证书在下拉菜单中显示为填写的二级域名的名称,但是实际上也可用于主域名。这个在多个教程中出现错误,可能是startssl更改了显示方式,原来是把主域名和二级域名分开显示的,现在去掉了主域名的显示。因为这个问题还我发了邮件向StartCom咨询。这里指的一提的是,服务态度非常好,回复邮件非常迅速,也没有因为我是免费用户而不耐烦。这一点非常非常赞。
  7. 在我已经解决问题之后,StartCom又发来邮件提示我说似乎我的网站并没有配置完成,因为没有导入StartSSL的根证书。步骤参考http://www.21andy.com/blog/20100224/1714.html
  • 获取https://www.startssl.com/certs/ca.pem
  • 获取https://www.startssl.com/certs/sub.class1.server.ca.pem
  • cat ca.pem sub.class1.server.ca.pem >> ca-certs.crt
  • cat ca-certs.crt >> yourcerfile.cer
  • 这一步执行完后,记得检查最后生成的cer文件是否格式正确,我当时这么操作完,cer的有2个证书之间就少个换行符,导致nginx不认密钥文件

之后就是在VPS上部署SSL了。Nginx的SSL配置非常简单,很快就配置好了。现在访问http://hyspace.cc会被强制转向https://hyspace.cc。于是心里踏实不少,这下咱的twip走加密链接了。

部署SSL完毕后,问题就出现了。当https链接的网站中,包含了非加密数据时(例如引用了http链接的脚本或者图片),浏览器会显示数据不安全。chrome的还算好,只是在https旁边加个三角,说明含有非加密内容,但是IE就没这么友好了,默认设置时直接弹出来个框,提示用户“网页包含不安全内容”。于是我又费了不少劲把页面里的引用全都改成https,又在wordpress安装了https插件,这才把这个警告框搞定。

今天还研究了一下gzip压缩的问题。在chrome下没有找到检测页面是否启用了gzip的工具,于是搜索了一下,找到了一下几个工具:

(其中,最后一个似乎是国人写的,不支持https地址。)

在用这几个工具检测过之后奇怪的事情发生了,gidnetwork的检测结果说我的网站没有开启gzip。这让我很不爽,但检查过nginx的配置文件后发现一切正常,gzip已经开启,并且压缩等级设置的9……这时,我只找到了gidnetworkzzbaike

这两个工具,一个不支持https,一个说我没开gzip。我百思不得其解,于是询问了众高手。Ray提示我把gzip_http_version 改成1.0,尝试过后发现果然gidnetwork 这工具是有问题的。