WordPress 博客站点部署SSL启用https的实践教程

2017年9月13日19:56:15 10 192
摘要

至此,至少明月的SSL部署算是完美的完成了,小绿锁啥的都出现了,如果你的还没有成功,那么记得在“源代码”里搜索”http:”来排查吧,,有些地方可能是需要你去修改主题源代码的,其实在部署SSL前最好是想主题作者了解好主题支持https的情况是最高效的了。如果你还有什么不明白的,那么就在评论里提出问题,我会尽量给大家一一解答的。

最近明月把自己的博客部署SSL启用https了,虽然之前在【本博客即日起正式部署SSL证书进入HTTPS行列】一文里有对部署过程的简单描述,但很多站长都反映还是不够详细,特别是在部署SSL后,浏览器提示“不安全”不出现绿色“小绿锁”方面不够详细,那么今天明月就专门针对一些部署SSL方面的细节做一个简单的教程分享给大家,希望可以帮助到大家!

WordPress 博客站点部署SSL启用https的实践教程

在部署SSL之前,大家首先要确定原来的http是访问正常的,并且保证使用的 CDN 是支持https证书自定义上传的,也就是说源站的SSL证书和 CDN 上导入的证书必须是一致的才可以(如果是 CDN 上申请的证书可以导出后,导入到源站使用,总之就必须一致)。

还有一点就是不要被SSL证书的扩展名给搞懵了,一般这些证书文件通过纯文本编辑器(如:EditPlus等)都是可以以UTF-8编码打开的,所以无论是在 CDN 后台导入,还是VPS云主机终端控制台、面板上都是可以通过复制、粘贴来导入和导出的哦。只要注意编码和不要有任何的修改即可了。

关于证书的选择,这个明月没有很好的建议,因为明月一直都是喜欢“开源”的,所以我选用的就是开源免费的Let's Encrypt证书,无论用哪种证书部署成功都显示的是“小绿锁”,至少目前为止明月还没有碰上不认Let's Encrypt证书的浏览器的。

在站点和 CDN ( CDN 部署好以后记得要强制更新一下全站缓存哦!)两个位置都部署好SSL证书后,这时一般在浏览器里(这里的浏览器默认都是指谷歌Chrome的,后面不再特别指出了)打开网站都看不到“小绿锁”出现的,这个主要是老站点会普遍碰到的,主要原因就是“内链”的前缀还是http造成的,这个“内链”有很多,文章内的站内文章引用、 WordPress 后台“设置”——“常规”里的“WordPress地址(URL)”和“站点地址(URL)”都还是http前缀,还有就是当前使用的主题引用的图片、LOGO、ICO图标、背景图片等等这些引用的前缀也是http,只需要在这些位置手动修改http前缀为https即可。对了,还有一个就是“菜单”里面的首页和指向某个链接的菜单项也要排查一下。

文章内的http前缀明月建议是在数据库MySQL里面通过SQL语句直接替换,虽然有一定的风险,但只要提前做好备份这是最一劳永逸、节能环保方法了。

具体的SQL语句和示例如下:

  1.  #WordPress 的数据库里wp_posts表(文章内)的http前缀替换
  2. UPDATE wp_posts SET post_content = replace(post_content,'old','new');
  3. #示例
  4. UPDATE wp_posts SET post_content = replace(post_content,'http://www.mydomain.com','https://www.mydomain.com');

记得替换示例里面的www.mydomain.com为你自己的网址哦!

记住这样的替换是永久性质的,如果想放弃https的话,还需要反着再次替换的,当然大家也可以使用网上的在 WordPress 内替换的方案,但这样的会徒增网站载入时间,不绿色不环保!:-)

基本上文章内的替换完成后就算是完成了90%的替换前缀工作了,如果还是灰色的https,小绿锁依然没有出现,特别是首页或者文章目录页,这时就是缩略图前缀的问题了,这个问题一般出现在指定特定图片为缩略图的 WordPress 自定义栏目里的图片链接的,同样的,这类也可以通过MySQL的SQL语句来替换的,具体代码示例如下:

  1. # WordPress 自定义栏目的内容替换
  2. UPDATE wp_postmeta SET meta_value = replace( meta_value, '旧内容','新内容') ;
  3. #示例
  4. UPDATE wp_postmeta SET meta_value = replace( meta_value, 'http://www.mydomain.com','https://www.mydomain.com) ;

同理,记得替换示例里面的www.mydomain.com为你自己的网址哦!

好了,到了这里就基本的完成了所有http前缀的替换了,这时应该在浏览器里就可以显示“小绿锁”了吧?!

啥,还是灰色的,小绿锁依然没有!囧!别急,这时就用最笨的办法查看网页源代码搜索“http:”看看还有哪里在使用http前缀,找出来做好记录,等待排查。

一般这时候都是出现在“第三方”的js、CSS引用链接上了,最著名的就是“百度分享”这货依然用的是http前缀的引用链接,这个主题不同替换方法多少不一样,根据你自己主题的情况来修正和替换吧,具体可以参考【百度分享不支持Https的解决方案】的方案,至于说鸟哥的 Begin 主题在5.0版之后很简单,按照【百度分享不支持Https的解决方案】把百度分享的JS文件本地化上传后,只需要修改主题目录/js/bd-share.js文件内的http前缀注释掉,下面的https前缀取消注释符即可,具体效果后看下图:

WordPress 博客站点部署SSL启用https的实践教程

如果你使用的是鸟哥的 Begin 主题的话,还要记得缓存插件里尽量不要优化JS,也就是一定要关闭JS优化啥的,像上面的百度分享的https本地JS文件就要加入到不缓存的排除列表里,要不是不会生效的哦,还有,记得要搞完上述这些后清除缓存插件的缓存和 CDN 上刷新缓存。

使用七牛云的“动静分离”的注意

如果你像明月一样是使用七牛云来优化静态图片加载速度的,这时候要记得你七牛上绑定的二级域名也是需要跟开启https证书的哦,这个证书可以不用跟主站的证书一致,但一定要有的,要不“小绿锁”你依然是看不到的。当然,七牛云也是支持Let's Encrypt证书的和自定义导入证书的,如果你的域名证书是主域名支持泛解析的证书可以参考【在七牛云里绑定的自定义域名使用Let’s Encrypt免费证书】一文在七牛里导入启用。悲催的七牛云竟然没有免费https流量,害的我只好忍痛割爱了。

 

至此,至少明月的SSL部署算是完美的完成了,小绿锁啥的都出现了,如果你的还没有成功,那么记得在“源代码”里搜索"http:"来排查吧,,有些地方可能是需要你去修改主题源代码的,其实在部署SSL前最好是想主题作者了解好主题支持https的情况是最高效的了。如果你还有什么不明白的,那么就在评论里提出问题,我会尽量给大家一一解答的。

历史文章推荐:

  • 我的微信
  • 扫一扫加好友
  • weinxin
  • 站长QQ群
  • 群号:284775512
  • weinxin
明月登楼

发表评论

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

目前评论:10   其中:访客  5   博主  5

    • 时光在路上 这家伙可能用了美佬的代理 谷歌浏览器 Windows 10 美国 3

      【七牛云竟然没有免费https流量】被坑了一回。。。。

        • 明月登楼 明月登楼 博主 来自天朝的朋友 谷歌浏览器 Windows XP 河南省南阳市 联通

          @时光在路上 是呀,七牛没有自己的 CDN 的,都是融合别人家的,所以没有免费的HTTPS流量!

        • 小萝博客 来自天朝的朋友 谷歌浏览器 Windows 10 广东省 电信 5

          开启又拍云的镜像存储

            • 明月登楼 明月登楼 博主 来自天朝的朋友 谷歌浏览器  MI 4LTE Build/MMB29M 河南省南阳市 电信

              @小萝博客 不喜欢又拍云的镜像,感觉没有七牛的给力!

            • 耐腐蚀泵 来自天朝的朋友 谷歌浏览器 Windows 7 广东省惠州市 电信 1

              这是以后的趋势,过来友情支持一下~

              • 懿古今 来自天朝的朋友 谷歌浏览器 Windows 7 广西南宁市 电信 6

                站点升级到HTTPS还是有很多工作需要跟进的,但是很多新手都以为直接弄好证书就OK了,所以很多人都跟着折腾HTTPS,结果就是瞎折腾。不过相信看完这篇文章,应该很多新手都会折腾吧。我就再继续观望看看。

                  • 明月登楼 明月登楼 博主 来自天朝的朋友 谷歌浏览器  MI 4LTE Build/MMB29M 河南省南阳市 联通

                    @懿古今 呵呵,我目前感觉HTTPS总体上看收获还是大于失去的,特别是感觉百度现在对HTTPS的支持越来越快速和完善了!

                  • 姜哥说 来自天朝的朋友 QQ浏览器  LG-H818 Build/LMY47D 广东省广州市 鹏博士长城宽带 4

                    非常感谢,我试过SSL好像也影响打开速度。现在暂时不开启

                      • 明月登楼 明月登楼 博主 来自天朝的朋友 谷歌浏览器  MI 4LTE Build/MMB29M 河南省南阳市 电信

                        @姜哥说 呵呵,其实那点影响微乎其微,注意开启HTTP/2即可!