网站开启HSTS严格HTTPS功能并加入HSTS Preload List

HSTS-HTTPS.jpg

从今天开始,土木坛子开启HSTS(HTTP Strict Transport Security)严格强制HTTPS SSL功能。

我一直支持HTTPS,在启用全站HTTPS后,用301的方式将所有HTTP访问请求自动转成HTTPS加密。但这种服务器端301的方式,并不能阻止浏览器到服务器之间HTTP链接被截持,因为此时的通信,并不是HTTPS。

启用HSTS协议后,在初次访问HTTPS后,用户在浏览器中再输入HTTP链接,浏览器本身会将HTTP链接自动转成HTTPS,会更加全面保护访问者的隐私,例如,没有人能在网络上截取你访问过土木坛子上关于艳照门的博文。

显然,使用HSTS的前提条件有两个,用户必须在之前成功用HTTPS访问过网站,浏览器支持HSTS协议。

这个功能实际意义并不是特别大,它相当于解决这么一个问题,以前需服务器端301跳转HTTP到HTTPS实现的功能现在直接在浏览器端自动完成,代替人工输入HTTPS链接——当然也可以用HTTPS Everywhere插件实现。

对于土木坛子倒是有一点小实用,如果你身在某国,你现在支持HSTS协议的浏览器里(Chrome, Firefox, Safari, IE 11+, Opera),直接输入 tumutanzi.com 或 www.tumutanzi.com,能实现访问了,浏览器自动将链接变成 https://tumutanzi.com,而在今天之前是不行的,tumutanzi.com 在到达服务器之前就已经被某墙截断通信。

其实我倒不是主要在乎这个好处,而是出于对新技术的好奇,有了新技术又能轻松支持,为什么不支持呢?相反,对于老旧的技术,比如Windows XP下的IE浏览器不支持SNI,本网站现在就不支持访问。

HTTPS现在普及得越来越快,百度支持收录HTTPS网站后,现在百度里搜索“土木坛子”,也能打得开结果了。原来不支持HTTPS的FeedBurner也支持烧录HTTPS的RSS Feed了(似乎Google还没有忘记FeedBurner这个项目,但谁知道它哪天会杀了它呢?FeedSky域名都打不开了),比如:https://feeds.feedburner.com/tumutanzi 又可以更新了。

我实现HSTS的方法由CloudFlare提供——CloudFlare不仅仅提供CDN功能,在设置中直接开启即可。使用Apache或者Nginx服务器的朋友随便Google一下应该很容易配置好。

配置好HSTS后,还可申请加入浏览器HSTS Preload List [Mozilla, Chromium],申请地址:https://hstspreload.appspot.com/,申请成功后(2015年7月28日更新:土木坛子域名成功被收录,更新2015年10月16日:Chrome更新到46版本后,土木坛子这个域名就正式开始内置强制HTTPS加密了),全球所有主流浏览器都会内嵌你的域名(Chrome, Firefox, Safari, IE 11+等),解决第一次HTTP的问题,你的域名自始至终都将自动使用HTTPS协议。

如果没有HSTS列表的话,就只能借助HTTPS Everywhere List了,已有好心人把土木坛子的域名 tumutanzi.com 收录到HTTPS Everywhere List里面了。

《网站开启HSTS严格HTTPS功能并加入HSTS Preload List》上有67条评论

    1. 以前我也试过,当时是WORDPRESS被挂马了,我重新删了WORDPRESS,再次安装WORDPRESS后就可以了,你试一下检查WORDPRESS有没有被挂马;这只是我的一个猜测.

    2. 安卓chrome39(刚换回去)显示的是只有你的positivessl域名证书和comodo的DV证书,没有那个comodo根证书。但win下面就没问题,也许安卓不会自动补全?

    3. Android 4.0.4 上,Opera Mobile、火狐没有问题,Google Chrome 和自带的浏览器报证书的 CA 不被信任。猜测原因是有问题的浏览器并不直接信任所提供证书链的最顶层证书。你提供更完整的证书链试试。

      1. 问题已解决,原来我当初只是导入了基本证书,而中间证书根本没有导入,详细可以看我博客:https://www.jinbo123.com/6016.html

    1. 兄弟,能否帮我看看我的站点呢?我的站点,也做了hsts的设置,也生效了。在apache的配置文件中,也加入了对https的重定向。 但是在申请谷歌hsts的预加载列表时,死活就通不过。 提示信息如下:
      Error: HTTP redirects to www first`http://butian518.com` (HTTP) should immediately redirect to `https://butian518.com` (HTTPS) before adding the www subdomain. Right now, the first redirect is to `https://www.butian518.com/index.php`. The extra redirect is required to ensure that any browser which supports HSTS will record the HSTS entry for the top level domain, not just the subdomain.

    1. 301重定向HTTP到HTTPS一直都会有的。
      301是让第一次访问的访客重定向到HTTPS(只是对于土木坛子这个域名,在国内无法实现),HSTS是为了以后再次访问时,输入HTTP链接时,浏览器本身自动转换成HTTPS——因为人都是懒的,不太愿意写HTTPS,连HTTP都不会输入的,对吧。
      楼上有朋友帮我把我的域名加入 https://hstspreload.appspot.com/ 的列表里,如果申请通过,将来,Chrome浏览器会内置我的域名,主动自动将我的域名加上HTTPS,那样,连第一次HTTPS连接都解决了(Chrome浏览器可以,IE和Firefox似乎也包括这个列表)。

  1. 头像使用cn.gravatar.com也好啊。看着一个叉烧包,就特别纠结。不能照顾下稍微普通点的网民么?
    或者是判断下,加载不了的时候,使用其他可以加载到的地址

        1. 我不是说不投放广告,只是不在这个网站上投放了——同时也为了更好的视觉效果和加载速度等。
          土木坛子这个博客能存活下去都已经不容易了。广告更不是首要考虑的事情——我缺钱,但不缺这点广告收入的~

  2. 我的站点,也做了hsts的设置,也生效了。在apache的配置文件中,也加入了对https的重定向。 但是在申请谷歌hsts的预加载列表时,死活就通不过。 提示信息如下:
    Error: HTTP redirects to www first`http://butian518.com` (HTTP) should immediately redirect to `https://butian518.com` (HTTPS) before adding the www subdomain. Right now, the first redirect is to `https://www.butian518.com/index.php`. The extra redirect is required to ensure that any browser which supports HSTS will record the HSTS entry for the top level domain, not just the subdomain.

    不知博主能否帮我看看问题症结所在的~?

老男孩进行回复 取消回复

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