HTTP To HTTPS

网站使用 HTTPS 是大势所趋,越来越多的网站都加上了 HTTPS 支持, 并且浏览器会把 http 协议的网站标记为不安全网址:

Chrome标记http网站不安全

把网站升级为 https 有以下几大优点:

  1. 安全性更高
  2. 防止劫持和攻击
  3. 更利于 SEO
  4. 可以使用现代化 web 技术
  5. 完全免费

什么是 HTTPS

HTTP(Hyper Text Transfer Protocol,超文本传输协议)是浏览器连接到网站的基础传输协议,信息是明文传输。

HTTPS 是加密的 HTTP 连接,增加了 TLS(Transport Layer Security,传输层安全),提供内容加密、身份认证和数据完整性的功能,使网络连接更安全。

网站使用 HTTPS 的优点

1. 安全性更高

https is secure

如果仅使用 http 协议,入侵者很容易通过各种手段窃取用户的隐私信息。

HTTPS 连接使用 SSL/TLS 协议,可防止窃听者、中间人攻击和劫持者。 换句话说,加密数据传输可以确保发送和接收信息的完整性。

因此,当用户在输入表单信息时,用户名和密码通过 https 协议加密传输,在此过程中不会被盗。

2. 防止劫持

http劫持攻击

国内运营商很喜欢在用户浏览的网站上插入广告,严重影响用户体验,这是因为 http 协议明文传输,运营商劫获请求后可以插入广告 HTML 代码。

HTTPS 在通讯过程中都使用加密和身份认证,运营商这时无法解密通讯数据流,也就无法插入广告代码。

3. 更利于 SEO

搜索引擎会给 https 网站更好的排名,早在 2014 年,Google 就将 HTTPS 作为网站排名的一个维度,鼓励网站都使用更为安全的 https 协议。

4. 可以用上现代化的 web 技术

更为现代化的 web 技术都要求 HTTPS,例如 HTTP/2AMPPWA 等。

HTTP/2 提供服务器推送和多路复用等功能,从而大大优化 HTTP 请求的性能,虽然 HTTP/2 协议本身并没要求加密,但是主流的浏览器实现只支持 HTTP/2 over TLS,也就是说只能在 HTTPS 基础上使用 HTTP/2 协议。

http/2性能更强

总的来说,只有 HTTPS 才能让这些新技术有用武之地。

5. 完全免费

Let’s Encrypt 为我们提供了完全免费的证书签发服务,对于个人博主或者小型网站来说完全够用。

free let's encrypt

更为关键是,Let’s Encrypt 还支持域名通配符,有多个子域名的情况下也只需要一个证书,管理起来更为方便。

如何把网站升级到 HTTPS

升级 HTTPS 步骤不多,需要时间和耐心慢慢调试和查错,大致上用以下 4 步,就可以把网站升级到 https。

  1. 申请免费 Let’s Encrypt 证书

    有不少工具可以自动化申请证书,例如 certbot、acme.sh、caddy 等

  2. 修改 nginx 配置

    监听 443 端口,增加配置指向申请的证书、私钥位置

  3. 替换网站中 http 链接

    原来的网站设置或者源码中,可能还有许多链接指向 http 网站,需要把所有链接替换为 https

  4. 把 http 协议的访问重定向到 https

    调试完成网站的 https 配置之后,就可以把访问 http 的请求,301 重定向到 https 协议端口,这样所有的请求都会通过 https 协议