博客全站启用HTTPS加密

  • A+
所属分类:建博笔记
摘 要

在启用HTTPS的过程中,花费了好几天时间,不是这个问题就是那个问题。本身自己也不太懂,各种各样的问题也没有得到很好的解决,浪费了大量时间和精力,后来才发现原来很简单。现在博客已经全站启用HTTPS了,就把操作过程中遇到的相关问题和操作步骤记录一下,也给各位新手朋友参考。

启用HTTPS的必要性

操作步骤非常简单,但遇到的问题着实不少,所以先把这些问题罗列一下,具体的步骤后面再写。这样可以让浏览本文的童鞋更加快速的了解本文方法适不适合你。

 

遇到的问题

百度里那些启用HTTPS的文章大多数都差不多:先申请证书,然后解析证书cname,最后进行相关设置。(这里鄙视一下这些博主和百度搜索引擎,原封不动的复制粘贴别人的内容,很多内容没有描述清楚,浪费了搜索者大量时间

刚开始的时候我不懂就参考教程去做了,但很快我就遇到了问题。因为我用的是阿里云虚拟主机,他是不支持直接绑定SSL证书的,原因是虚拟主机不开放443端口,一般只有默认的80端口(貌似虚拟主机都不开放443端口)。

后来了解到虽然不能直接绑定SSL证书,但可以通过CDN加速变相实现HTTPS,于是就去操作CDN。在操作CDN的过程中,涉及到很多知识点,搞不明白,不知道没成功的原因是哪个设置造成的,最终结果就是没弄成功。(离成功最近的一次是博客地址由HTTP变成了HTTPS,博客也可以访问,但是博客样式出现了问题。

这样一来启用HTTPS的前两条思路就断了,后来无意中看到了一个功能,试了一下居然成功了。具体过程请看下面。

 

启用HTTPS操作步骤

进入【阿里云管理控制台--云虚拟主机--管理】

找到【站点信息--域名管理--域名绑定】

点击你要启用HTTPS的那个域名对应的【启用】按钮,然后他会弹出一个对话框,叫你选择一个证书,你选择那个【免费证书】并勾选【同意服务条款】,最后点击【确定】就可以了。

此时,系统会在后台帮你申请免费证书,大概需要几分钟至十几分钟。到时你刷新这个页面,就可以看到“已开启”字样了。那就代表你的HTTPS已经成功开启了。如果没有成功开启,他也会有相应的文字描述的。

启用HTTPS时的注意事项

  • 启用HTTPS需保证域名已备案
  • 理论上,只需绑定主域名即可
  • 一张免费证书只能绑定一个具体的域名明细

理论上来说,HTTPS成功开启后,就算完事了,在浏览器地址栏使用https://+你的域名就可以正常访问你自己的博客了,在域名前面也会显示一把绿色小锁图标。但在实际操作中,一般都还需要做一些其他方面的修改,请接着往下看。

 

启用HTTPS后需要做的事情

1、修改后台wordpress地址、站点地址

进入【后台--设置--常规】,将【WordPress地址(URL)】和【站点地址(URL)】中的http改成https

也可以直接修改网站根目录下的【wp-config.php】文件,将下面这两行代码添加在文件的最后。

define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

我使用的是第一种方法,主要是因为第二种方法在程序升级后需要再次修改。

2、修改文件的完整URL地址

进入【后台--设置--媒体】,将【文件的完整URL地址】中的http改成https

如果你这个地方没有这两个设置项或设置项默认为空的话,就不需要修改了。

3、修改文章中的超链接地址

如果你文章里超链接比较少的话(包括外链的图片,媒体文件等)可以手动一个一个修改。一般来说,都会比较多,所以需要借助插件或数据库来操作。如果你喜欢用插件的话,可以在插件中搜索“SSL”字样,然后自己研究一下,应该也挺简单的,我是直接在数据库里修改的。

先备份好你的数据库。进入【数据库--SQL窗口】,选择你的博客所使用的那个数据库

使用下面的命令替换掉上图中默认的SELECT * FROM,点击【执行】按钮

update wp_posts set post_content = replace(post_content, 'http://isdola.com','https://isdola.com');

命令解释:

  • wp_posts:要更新的数据表。根据自己实际情况填写
  • post_content:更新内容所在列
  • http://isdola.com:替换前的内容
  • https://isdola.com:替换后的内容

数据库操作时的注意事项

  • 操作前先备份好数据库——再次强调
  • 如果替换的是外链地址,替换前最好单独访问一下该地址,防止替换后无法正常访问
  • 替换时不要单纯的使用https去替换http,避免部分不支持https的外链地址在替换后无法正常访问
  • 参照上面的命令可以批量替换图片、视频等地址

4、修改后台文章编辑面板中的链接地址

有些主题是有各种自定义面板的,在面板中可以添加缩略图什么的,那样的话也需要替换。替换的方法和上面数据库里操作的方法是一样的,只是数据所在的表和列的名称不一样。

以我使用的主题为例,面板中的数据都存放在wp_postmeta这个数据表的value列中,所以使用的命令就变成了

update wp_postmeta set value = replace(value, 'http://isdola.com','https://isdola.com');

如果你不知道你所使用的主题的面板里的数据在哪个数据表的哪一列中,你可以依次打开数据库中的每一个数据表,然后查看表中的哪一列涉及到这些数据,然后再按照这条命令格式修改好后替换。我就是这样逐个检查数据表,并逐个替换数据表中的相关数据的。

参照此命令格式可以批量替换数据库中所有你想替换的内容,不仅仅是地址。

5、其他需要替换的地方

  • 【后台--链接】中涉及到的链接
  • 【后台--外观--菜单】中涉及到的链接
  • 【后台--外观--小工具】中涉及到的链接
  • 【后台--主题选项】中涉及到的链接
  • 【后台--页面】文章中涉及到的链接
  • 百度分享无法使用https,需要自行搜索相关教程解决(解决思路:本地化)
  • 其他可能涉及链接的地方

6、其他需要做的事情

当你觉得都替换的差不多的时候,可以使用https方式访问你的网站,看下地址前面的小锁图标是不是绿色的。如果是绿色的,说明当前页面中的所有链接都是https的,如果不是绿色的(默认灰色),说明当前页面中还有http的链接。

此时你可以使用浏览器的F12里的【控制台/Console】功能,逐一查看具体是哪些链接还没有替换掉,然后找到这些链接所在的位置将他们逐一替换掉就好了(除了你知道的不支持https替换的链接外)。

按照这个方法你可以打开不同的页面随机检查(或逐一检查)你想查看的页面是否还存在没替换的http链接。

完成所有链接替换后,可以去百度站长平台提交HTTPS认证,听说认证后有利于收录速度?!

 

其他可能存在的问题

1、从正文获取第一张外链图片作为缩略图时,缩略图无法显示或显示为程序设定的固定图片的解决办法

由于我的博客中的图片主要都存放在新浪图床中,有些缩略图需要从正文里获取,而新浪图床里的图片地址默认是类似http://ww1.sinaimg.cn/xxxxxxxxxx.jpg这样的。当我在数据库里批量修改了图片地址后,这张图片的地址就变成了https://ww1.sinaimg.cn/xxxxxxxxxx.jpg这样,但是我发现凡是从正文获取第一张外链的新浪图片作为缩略图时,该缩略图就无法显示,而从其他地方获取的同样是新浪图床的图片则可以正常显示。另外,如果该图片是从本地上传的,也可以正常显示。

尝试了百度里各种所谓的解决方法都没能解决这个问题。后来在和群友讨论这个问题的过程中这个问题才得到了很好的解决,主要原因是新浪图床对https的支持不是很好。解决方案有两个:

  • 方案一:将这些需要显示在缩略图中的图片转换到本地空间或对https支持较好的图床上

如果你用的不是新浪图床的话,可以尝试这个方案。只是如果涉及的图片数量较多的话,就比较费时间。

  • 方案二:修改新浪图床图片地址

将原来的地址http://ww1.sinaimg.cn/xxxxxxxxxx.jpg改成https://ws1.sinaimg.cn/xxxxxxxxxx.jpg,同时在缩略图配置文件中添加ws开头的域名白名单。

2、百度嵌入式站内搜索页面无法正常使用

使用搜索功能跳转到搜索结果页是正常的,但是打开搜索页面是不正常的。尝试将js文件本地化,但貌似还需要做一个反向代理。由于我的是虚拟主机,单纯只修改【.htaccess】文件貌似不行。

3、由于视频网站本身的原因,引用部分视频网站资源小锁图标会有混合内容提示

博客里的视频主要通过优酷发布,由于优酷本身没有全站启用SSL协议,导致引用优酷视频时小锁图标会有混合内容的提示,但不影响页面正常访问,只是对于有强迫症的我来说,看到小锁图标没变绿有点难受,哈哈!

不过腾讯视频是支持SSL协议的,我在测试时发现如果博客引用的是腾讯视频的话,一切完美,小锁图标也是绿色的。但是,腾讯视频的播放器实在太丑了,除了有一行控制栏外,底下还有一行广告栏,相比优酷播放器来说。。。哎,实在不想用腾讯视频,宁可先将就着混合内容吧。

若文章图片、下载链接、网盘密码等信息出错,请留言反馈,博主将第一时间更新!如果喜欢,请打赏支持本站,谢谢大家!
isdola

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • avatar 阿喵 1

      不错