分类: 网络观察

Nginx 为 HTTPS 加密站点启用 Certificate Transparency

nginx-ssl传统的 SSL 认证身份的过程可能存在着受信任 CA 错误或某些不负责任行为、抑或是自身域名被别人冒充申请颁发证书的潜在危险,这是 SSL 认证环节中容易被利用的一环。由 Google 主导的 Certificate Transparency (CT)希望解决这些问题。任何证书持有人、CA 都可以向 CT 服务器提交证书,并接受审计和监控,使得当前的 CA 能够更加安全公开和透明。

启用 Certificate Transparency 与否的不同

如果 HTTPS 网站没有部署 Certificate Transparency,会有什么不同呢?

首先,Google Chrome 浏览器取消了对没有 CT 记录 Extended Validation(EV)证书绿条(Green Address bar)的显示。

其次,如果你有 iOS 开发的需要,你会了解到 iOS 9 新增了一个叫做 App Transport Security (ATS)的特性,开始默认强制所有请求为 HTTPS 请求。如果你的网站不支持Certificate Transparency,那么将不能通过 NSRequiresCertificateTransparency 的情况。

除此之外,对于大多数中小型网站 CT 的启用与否,还没有太大的区别。在 Chrome 上点击证书绿锁可以看到,未启用 CT 的网站和启用 CT 的网站存在着下面这一句话的细微区别。

Google 谷歌为什么必须回归中国

google china building你一定还记得在 2010 年,谷歌在一阵喧闹之中离开了中国。那时的中国互联网一片唱衰之声,认为这件事情对于中国互联网来说,是一种倒退,也是一种不可弥补的遗憾。但也有人将多年前那段李维斯和中国的往事重提,认为谷歌终究还是会回来。不过由于此事件的复杂度颇高,谷歌欲回归的势头一直不明显。直到最近一年,谷歌频繁爆出要回归中国的消息。

最初是猜测,之后传出消息谷歌高层直接表态要在合适的时机回归中国并愿意遵守中国的法律,最后是谷歌的官方支持页面上出现 “Google Play 中国版” 字样,今年年初谷歌中国在北京和上海更是放出一大批岗位招聘。而谷歌大中华区总裁石博盟(Scott Beaumont)则更是地地道道的用中文给中国人民拜年,称 “我们一直都在”,可以说是尽显诚意。

Scott Beaumont chinese new year

看来,谷歌的回归已经可以敲定,只是时间的问题。这一切也符合人们的预料,因为谷歌的回归,可以说是一种必然。

针对 HTTPS 加密优化 Nginx 的参数配置

nginx-ssl网页的全面加密是一个很明显的未来趋向,安全性这一因素被越来越多的网站考虑,部署 https 加密对于大多数网站来说都非常必要,尤其是当搜索巨头 Google 宣布会稍微提高 https 网站的优先级之后。这家公司本身就非常注重安全性和保密性,因此推出这样的策略也不难理解,也能极大地推动加密称为网站建设的标准配置。

为什么要加密

互联网是越来越开放的,人们也是越来越注重保密性的。在互联网的保密观念不强的过去,https 并不是网站的标配。但是在当下,我们需要传输越来越多的个人信息,对于网站的保密性要求也就更高。看到网站地址挂上了绿锁,总是不必担心自己阅读的内容被其他人看到。

其次,在国内,运营商劫持是一件非常令人烦恼的事情。运营商为了追逐利益,会强行注入广告代码,甚至是调取搜索关键词,强势推销广告,隐私暴露无遗。这不仅是对访客的伤害,对自己的网站体验也是一种伤害。加密的 https 则会最大的避免这一个风险。

部署 SSL 证书并启用 HTTPS 连接非常简单,在此不再赘述。

下面讲解以 Linux + Nginx 为例子,详解如何优化配置 Nginx 的参数,提升安全指数和速度。

所有的配置一经修改,都需要重启或重载 Nginx 服务来应用。

修改 hosts 使用非最佳的 IP 访问 Google 安全证书辅助步骤

Google Blocked我们知道通过修改 hosts,某些 IP 并不能支持 Google 旗下所有服务的直接访问。例如某些证书显示为 **docs.google.com 的非最佳、不推荐的 IP,仅适用于 Google 文档。但是事实上,它们仍然有潜力支持,但是检测证书的时候浏览器会报警。通过一个额外的步骤,可以使得它们获得 Google 全系列服务的访问支持。下面介绍 Mac OS X 系统、Windows 系统下的修改方法。

重要提醒、局限性、不适用的用户

此方法存在着可被避免的安全风险,但是您仍然应该对自己的行为负责。使用此方法,您必须确保这个 IP 来自 Google 官方,有多种渠道可以查证。除此之外,您还应该关注当前网络连接的 SSL 安全问题。

其次,因为部分的涉及到安全隐私问题,它可能不适用于以下互联网用户:

不明确网络安全问题尤其是 SSL 攻击定义的;

不能较好的分辨钓鱼网站的;

不能理解 HTTPS 加密协议的简单原理的

解决 Google CDN 无法连接导致网页无法加载的问题

Google Blocked国内网非常多的网站都使用免费的 Google CDN 服务来加载某些 js、字体样式库以提升网页浏览体验,例如 jQuery、Google Fonts。但是目前 Google 的大多数网站在大陆无法正常访问,因此这些本身是加快网页载入的库反而成为了阻塞网站加载的原因。这种情况国内的网站并不多,但是国外的网站却非常多地使用这些库。一般地,当 Google CDN 库称为网页加载的限制因素时,浏览器状态条会显示状态为 “正在等待 ajax.googleapis.com 的响应...” 或 “正在连接...” 等字样。

ajax.googlepis.com connection refused

如果打开控制台,能看见 Google CDN 确实正在阻塞网页加载。如果等待足够长的时间,浏览器最终会放弃加载,并呈现一个残缺的网页,这并不好。下面从网页开发者、浏览器用户的角度给出一些解决方案。

VPS 三步搭建安装 Shadowsocks Node.js 版

我们除了 VPN、HTTP Proxy 可以选择以外,还可以选择一款轻量的 Socks5 代理,它是有名的 Shadowsocks,如果你有一台自己的 VPS 主机的话,不妨可以利用手中的资源搭建一个。

Shadowsocks
支持加密的 Socks5 代理,开源项目。

Shadowsocks 有不少服务器端的版本选择,例如 C、Python,而之所以推荐 Node.js 是因为它小巧却性能强悍,并且听上去很时尚。事实上,Node.js 版的 Shadowsocks 搭建起来也很容易,可以将其大致归类为 3 个步骤,所花费的时间不会超过 10 分钟。

网页检测 AdBlock 的 6 种方法

adblock logo有些网页上充斥着令人厌恶的广告,这些广告不仅阻碍了信息的获取,有的还严重影响了浏览者的心情。特别是某些毫不相关的多媒体广告和弹出式窗口,不仅让人感到被骚扰,还很容易误点到,浪费宝贵的时间。由此便诞生了大名鼎鼎的跨平台 AdBlock 插件,在任何主流浏览器上都有它的扩展或插件,用户可以安装它并屏蔽绝大多数的广告。

既然 AdBlock 有检测广告并屏蔽它们的方法,作为网页制作者,其实也有反过来检测 AdBlock 的方法。

为什么要检测 AdBlock

这是一个有争论的问题:用户有选择不看广告、在浏览器页面上销毁广告的权利,网站也有捆绑广告和信息一同派发给你并收取广告商展示费用的自由。这两者都不能互相干预,并且在没有明确法律法规的环境下,你可以防范我,我也可以防范你。

ads on webpage

校园网、教育网 如何纯粹访问 IPv6 网站避免收费

nat64 ipv6我国校园网有可靠的 IPv6 网络环境,速度非常快、稳定,并且大多数高校在网络流量计费时不会限制 IPv6 的流量,也就是免费的。然而访问 IPv4 商业网络时,则会收费,并且连接的可靠性一般。可幸的是,目前有一种将 IPv4 转换为 IPv6 的方式可以实现所有网站通过 IPv6 流量,从而避免校园网收费的方法,实现的核心是 NAT64/DNS64。下面分别以 Windows、OS X 系统讲解如何实现。

NAT64/DNS64

NAT64/DNS64 可以将 IPv4 地址对应的转换为 IPv6 地址,相当于指引向 IPv6 流量,相当于一种代理。它还可以实现 IPv4 和 IPv6 协议的互访。由统计图可以看出,其服务在日间的速度可以基本满足校园网访问需求。

NAT64 statistics

其实现的主要诀窍就是添加其为 DNS 服务器,并在本地停用 IPv4 协议。

让 Google Drive 和 Dropbox 同步同一个文件夹目录

google drive and dropbox logo之前我写过一篇 “为什么我选择 Google Drive 而不是 Dropbox” 的文章,讲述了八个 Google Drive 优于 Dropbox 的理由。其实 Dropbox 也是非常棒的同步工具,例如先进的增量上传或者更开放的 API 等。可是为什么不曾想过把 Google Drive 和 Dropbox 同时使用呢,我是说,让这两者同时云同步同一个文件夹目录?这样我既可以使用前者强大的协作编辑功能,也能使用后者更丰富的 API 接口。可我只在网上看到一个同步另一个子目录的形式,这很不好。于是,在我自己的一番尝试后,我成功地达到了目的,下面是我的方法。

退出并清理内容

如果你还没有安装并使用 Google Drive 或者 Dropbox,可以忽略这一步。

不论你现在使用的是 Google Drive 还是 Dropbox,你都需要删除软件,清空掉本地所有内容,并删除 “Google Drive” 或 “Dropbox” 文件夹。当然,你应当先删除软件后清空内容,这样的话能保证文件都安全的在云端,不要担心,一会儿同步回来。

为什么我选择 Google Drive 而不是 Dropbox

google drive and dropbox logo当下最流行的网络云存储服务应当就是 Google Drive 云端硬盘、Dropbox、OneDrive 了。这三家提供商都提供了优秀的服务,各有特色并且不相上下。我个人由于外观和系统兼容性原因没有选择 OneDrive,并且目前我不认为微软有做网络云存储的基因。于是我先后使用了 Dropbox 和 Google Drive 云端硬盘大约各一两个月的时间,最后我得出的结论便是,我认为 Google Drive 云端硬盘更适合作为我的主力云存储服务。我会说明我如何认为 Google Drive 云端硬盘好过 Dropbox。

Google Drive VS Dropbox: 两大云存储的共同优点

首先,两家服务都提供了稳定的上下载速度和安全的数据保密性。我们不需要担心把文件放在谷歌公司的服务器或者 Dropbox 公司托管服务器上会有什么被窃的风险,因为它们几乎已经代表了业内最顶级的加密水平。

此外,Google Drive 云端硬盘和 Dropbox 都提供了很不错的版本控制功能,一个文件可以保存30天以内的各个修订版本,并且仅仅只有当前最新的文件占用空间。

google drive revisions

最后,Google Drive 云端硬盘和 Dropbox 都提供了“回收站”功能,可以当作已删除文件再次恢复的“后悔药”。

下面来谈谈 Google Drive 云端硬盘比 Dropbox 好的八个理由