从 HTTP 到 HTTPS

网站从 HTTP 升级到 HTTPS ,需要以下几个步骤:

█ 申请安装 SSL 证书

有一次探索虚拟主机服务商提供的服务,看到了 “SSL 证书” 这项内容。刚好该虚拟主机服务商支持并且提供 “SSL” 证书,最便宜的只要 8 块钱一年。

因为我是用在博客上,所以最便宜的这种就足够了,就顺着服务商的引导页面购买了 SSL 证书签发服务。

根据证书申请要求,在网页空间存放指定内容的文本进行验证,然后巴拉巴拉一顿操作,很快就给我签发了证书:

201808280908335

下载证书,解压后发现证书就是特定格式的一堆数据。SSL 部署方式可参考虚拟主机服务商的参考手册。下面是西部数码虚拟主机的 SLL 部署教程:

https://www.west.cn/faq/list.asp?unid=1853

还以为 SSL 部署完就 ok 了,结果打开网页后,浏览器(Google Chrome)直接警告此链接会泄露信息:

    ( ╯□╰ )

找了个没部署 SSL 证书的网站,浏览器是这样显示的:

可以看到对于没部署 SSL 证书的网站,虽说浏览器显示 “不安全” ,但是也没直接警告呀。

怎么现在越弄越不安全了呢,于是按 F12 进浏览器控制台看了一下,控制台的警告显示此网站有 HTTP 内容被拒载了,大都是一些 js、css 之类的。

既然这样,那就要把资源都改成 HTTPS 的,难不成网站所有文件都要改呀,那我得哭晕在厕所了 ⊙﹏⊙∥

难道说 WordPress 不支持 HTTPS 吗,这么世界级的一个博客平台,不应该不支持呀,经过一番搜索和尝试,原来是这样解决:

█ WordPress 开启 HTTPS

WordPress 是绝对支持 HTTPS 的,只是默认是关闭状态,开启方法:

第一步:在 WordPress 的配置文件 wp-config.php 里添加配置信息,注意位置不要错,要在

/* 好了!请不要再继续编辑。请保存本文件。使用愉快! */

之前添加: $_SERVER['HTTPS'] = 'ON';

20180829083003

第二步:进入数据库,在 wp_options 表中,给 URL 加个 “s”,改成 HTTPS:

201808290850340

重新进入博客,浏览器就显示网站安全啦:

20180829083624  o(* ̄▽ ̄*)ブ

如果还显示安全警告,很有可能是主题文件中包含了 HTTP 内容,就老老实实修改主题吧。

但是到此还没有结束,证书安装完毕后,如果需要打开 HTTP 直接跳转 HTTPS,就需要设置 301 定向:

301 定向

虚拟主机的操作系统、环境不同,配置方式不同,服务商都有详细的指导文档,按照文档对号入座即可。以下是西部数码的设置教程:

https://www.west.cn/faq/list.asp?unid=1419

后记

至此,就真的完成了从 HTTP 到 HTTPS 的部署。使用 HTTPS 有优点也有缺点,但是优点远远多于缺点,而且随着计算机性能的提高、网络环境的改善,很多缺点都可以克服。

使用 HTTPS 后,大多数浏览器都给了 “加锁” 显示,表示这个网站是安全的,这对访问者的体验肯定是加分的。

其次,以前 HTTP 的时候,总发生 “HTTP 劫持”,现象就是网页下方、右下方会出现小广告,有 “幸运抽奖” 的,也有少儿不宜的,后来变成了  “大家好,我系渣渣辉” …

尤其是手机使用 WIFI 走电信网络访问的时候,为此我还打电话和电信客服反应过这事,但是客服让我还原浏览器设置、清除 cookie,还让我 ping 什么东西,反正最后被客户的天真无邪打败了。

使用 HTTPS 之后,小广告全没了,因为都是加密内容,即使被劫持,也只能得到乱码,没办法在页面里插广告    ( •̀ ω •́ )✧

对于 HTTPS 的访问速度,我起初也是略微有点担心,但是实际完全没必要担心,因为访问网站的绝大多数时间消耗在了 TTFB 上:

20180829095207

检查过数据库连接、插件、主题,没发现什么问题,可能是我使用的主机配置太低    ( ̄_ ̄|||)

不差钱的朋友可以购买一点 CDN 加速服务。Anyway,整体效果符合预期,HTTPS 值得拥有,具体原理可移步 -> HTTPS 原理浅析

 

2018/3/32 日更新

1,浏览网站页面的时候,查看后台,发现了一种不严重的警告:

20180831090736

可以看到页面中对图片的引用仍然是通过 HTTP 的方式,虽然有 301 定向帮我们把地址定向到 HTTPS,但是既然浏览器给了提示我们不妨修正修正。

于是我进入相应文章的编辑界面,把 HTTP 改成 HTTPS ,保存,刷新页面,果然警告消失了。

但是我有很多文章呀,总不能一个一个修改吧,那我又要哭晕在厕所了  ⊙﹏⊙∥

于是我又对数据库动手了,打开相应数据库,执行 SQL 语句:

UPDATE wp_posts SET post_content = REPLACE( post_content, 'http', 'https' )

UPDATE wp_posts SET post_content = REPLACE( post_content, 'httpss', 'https' )

20180831092559

ok,这下文章中所有的 HTTP 引用就全改成了 HTTPS 。为什么要第二句 SQL,是因为第一句把 http 改成 https 的同时,还会把 https 改成 httpss    ( ̄_ ̄|||)

*为避免哭晕在厕所,对数据库动手前请备份数据库

2,对于 TTFB 时间过长,有一个 WordPress 插件可以较好的解决这个问题:

WP Super Cache

这个插件缩短 TTFB 的原理是,把页面以 HTML 和 PHP 文件的形式缓存在服务器里,当有访问的时候,只要缓存文件还没超时,就可以根据请求直接返回相应的缓存文件,不需要服务器时时渲染页面,访问速度显著提高。

发表评论

Powered by WordPress | Theme Revised from Doo

苏ICP备18047621号

Copyright © 2017-2024 追光者博客