转载

博客全程启用 HTTPS 加密

博客全程启用 HTTPS 加密

★引子

沦陷日长假的第一天,俺打算上博客回复读者评论。通常俺会先登录到 Blogger 的管理界面,清理一下被 Google 误判为垃圾广告的读者评论。结果在管理界面的首页,就看到了 Blogger 的最新消息—— HTTPS support coming to Blogspot

可把俺高兴坏了(好几年前,俺就盼着这一天)

在长假的头两天,俺对博客界面做了一些升级(具体下面会说)。第3天观察了一下,看大伙儿有没有碰到啥问题或 Bug,然后今天发一篇“博客通告”,跟大伙儿打个招呼。

★关于 Blogspot 的升级

简而言之,今后搭建在 Blogspot 上的博客,都可以使用 HTTPS 方式访问。原有的 HTTP 方式依然保留,所以实际上同时支持这两种协议。

对于博客的博主,需要先到管理界面,启用一下 HTTPS 的选项,就 OK 了。

★关于俺博客的升级

这两天做了如下几处修改。

◇自动重定向到 HTTPS

如果你以 HTTP 协议打开任何一个博客页面,俺会使用 JS 脚本自动重定向到同一个页面的 HTTPS 协议。

因为俺是基于 JS 实现重定向,如果浏览器禁用了 JS,俺就没辙了。

◇博文中的“站内链接”替换为 HTTPS

博客的老读者应该知道,俺经常在博文中添加交叉链接,方便你从一篇博文跳转到另一篇相关的博文。

当读者点击某个站内链接之后,如果该链接是 http:// 开头的,在新页面打开之后,就会多增加一次跳转。为了节省大伙儿的时间,俺就预先把站内链接全部替换为 https:// 开头。

这个功能是在博文加载时,用 JS 脚本实现的。(该功能同样需要依赖 JS 脚本)

◇评论中的“站内链接”替换为 HTTPS

这个改造跟前一个类似。

因为某些读者可能会在评论中贴出某篇博文的链接,而且是 http:// 开头的。俺也用 JS 脚本统一替换为 https:// 开头

(该功能同样需要依赖 JS 脚本)

◇上述升级的好处

经过上述改造之后,所有的站内链接都是 HTTPS 的。因此, 读者在博客中浏览或者发评论时,网络流量【全都是】加密的

★HTTPS 有啥好处?

◇对于网民而言

简而言之,HTTPS 是强加密的。因此,当你浏览 HTTPS 协议的网页,从“你的浏览器”到“目标网站”之间的数据传输,都是强加密的。

加密有助于防范某些不怀好意的人对你的上网行为进行偷窥(术语称为“嗅探”),因此有助于提升安全性。

俺博客的读者,大部分都在墙内,因此都是采用翻墙的方式访问本博客。原先 Blogspot 不支持 HTTPS,所以你在俺博客浏览的时候,相关的网络流量,会被翻墙工具看到。如今有了全程 HTTPS 加密,翻墙工具(包括对应的代理服务器或 VPN 服务器)就无法看到你(访问俺博客)的网络流量。

HTTPS 的底层实现依赖于 TLS/SSL。具体的技术细节可以参见俺的另一个系列《 扫盲 HTTPS 和 SSL/TLS 协议 》(该系列尚未写完)

◇对于站长和博主而言

除了前面提到的安全性,启用 HTTPS 还有助于 SEO。

大约一年前(2014年8月),Google 调整了搜索引擎的算法,提升了 HTTPS 网址的权重。具体介绍参见 Google 的公告(在“这里”)。

所以,启用 HTTPS 有助于稍微提升一下你的网站在 Google 搜索结果中的排名。

(除了 Google,其它搜索引擎说不定也会采取类似的算法调整)

★你需要做些啥?

◇改一下浏览器书签

如果你曾经在浏览器的“书签/收藏夹”中收录了俺博客,你需要重新修改一下博客对应的网址(把 http:// 改为 https://)

(其实不改的话,也可以照样打开。但是会多一次跳转,多浪费了你一丁点时间)

◇碰到问题的话,给俺反馈

这次升级之后,如果你发现博客界面或功能有啥异样,恳请给个反馈(到博客留言)。俺先行谢过。

★Blogspot 的博主可能会碰到的问题

(如果你【不是】 Blogspot 上的博主,本节就不用看了)

◇已知的限制

Blogspot 有一个“绑定域名”的功能。很多博主用到了这个功能,把 Blogspot 上的博客内容绑定到自己的域名。

根据 Blogger 界面上的提示:在绑定的域名上,【不】支持 HTTPS 的访问。

因为俺博客没有绑定到自己的域名,所以这个限制与俺无关。(当年开博时,因为担心泄露身份,没有购买自己的域名)

◇已知的 Bug

根据俺这两天的观察,发现如下几个问题,有可能是 Blogspot 系统本身的 Bug。

1.

以 HTTPS 方式打开某篇博文,博文评论中的用户头像,有少数还是通过 HTTP 方式载入。这种情况下会导致浏览器给出警告(对于 HTTPS 加密页面中含有非加密的内容,比如图片,浏览器都会在地址栏显示一个警告)。

2.

使用 HTTPS 方式调用评论的 API,得到的 JSON 格式中,某些用户头像的网址,依然是 http:// 开头的。

这几个问题,可能会在几天之后被修复,也可能会一直存在。

俺等不及问题的修复,直接去改了“HTML 模板”中的一段 JS 脚本(这段脚本与加载评论有关),把头像的网址强制替换为 https:// 开头。

如果你也碰到类似问题,可以参考俺的修改——查看俺博客页面源代码,然后搜索: Avatar URL force HTTPS (只要略懂 JS 代码,应该能看明白)

顺便放一个测试工具:该工具可以用来测试任何一个支持 HTTPS 的网址,并给出很详细的技术评估结果。:

正文到此结束
Loading...