第一次折腾站点升级HTTPS 虽胜尤败

投稿   懿古今  2017-09-22 07:26:03  114 人阅读  32 条评论

投放广告联系   诚邀合作伙伴   赞助我们   本站公告   轻松一刻

最近很多站点都开始升级到 HTTPS,鉴于又拍云有免费的 HTTPS 流量和提供自动续签的 Let's Encrypt 证书,所以昨晚终于忍不住就出手折腾一番,虽然历尽千辛万苦,但是最终把站点所有页面都折腾出小绿锁还是蛮有成就感的。可惜今天中午又把站点折腾回 HTTP 了,虽然只是经历过短暂的一夜,但是也是只记得铭记的,所以就把大概折腾的过程记录下来,以便下次再次折腾时以作参考。

第一次折腾站点升级HTTPS 虽胜尤败 海纳百川 第1张

注册又拍云获取 HTTPS 流量和证书

这里就不展开说,就大概说一下吧。到又拍云官网注册之后,就可以使用 CDN 服务,通过 CNAME 方式让 CDN 正常使用后,就可以配置相应的缓存规则和其他设置,其中 HTTPS 需要使用到证书,想偷懒的可以直接使用又拍云的提供免费而且会自动续签的 Let's Encrypt 证书。只要你的 CDN 服务的 CNAME 配置好之后,而且域名是已经备案的,获取这个 Let's Encrypt 证书很容易,几乎可以说是秒获得。

第一次折腾站点升级HTTPS 虽胜尤败 海纳百川 第2张

获得这个证书之后,只需要在又拍云的 CDN 中设置是否强制跳转 HTTPS 即可。唯一的缺点就是无法下载这个 Let's Encrypt 证书,这也导致我们无法在服务器中部署源站 SSL,很有可能就会导致百度 HTTPS 认证失败。

PS:也有博主反馈说可以通过认证,我就是无法通过认证才回退到 HTTP 的。

在又拍云中开启了 CDN 和 HTTPS 之后遇到的错误大概有:

1、站点无法打开。这个问题是以为我在 CDN 中设置了 HTTPS协议回源,但是由于证书是在又拍云的,所以无法设置源站的 SSL,所以只能更改回源方式为 HTTP 协议回源,改回来之后就可以正常访问了。

2、前后台样式错位。这个问题是因为我关闭了又拍云 CDN 的参数跟随,应该保持默认全程跟随即可。

3、整站刷新过多无法访问。又拍云 CDN 整站刷新一天只能用5次,而且刷新过多会导致站点无法访问,需要过一段时间后才能正常访问。

第一次折腾站点升级HTTPS 虽胜尤败 海纳百川 第3张

人工替换数据库和主题文件中的 HTTP 变成 HTTPS

1、站点文件。标准的主题文件一般都不用怎么折腾,一般就是登录 WordPress 后台在设置 >> 常规中把“WordPress 地址(URL)”和“站点地址(URL)”改为 HTTPS 即可。甚至可以在登录状态下手动更改地址栏为 https://youdomain.com/wp-admin/options.php,找到所有值为 http://youdomain.com 的,都改为 https://youdomain.com。

2、数据库文件。这个一般推荐直接在数据库上通过 SQL 直接替换,比如:

  1. UPDATE wp_posts SET guid = REPLACE(guid, 'http://youdomain.com','https://youdomain.com')
  2. UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://youdomain.com','https://youdomain.com')

当然,不想使用 SQL 操作数据库也可以通过 PHP 代码自动替换,具体可参考《WordPress开启HTTPS后正文图片改为HTTPS两种方法》。

人工替换七牛云图片为 HTTPS

由于以前埋下的坑,我的图片都是人工上传到七牛云,而不是通过后台上传图片然后镜像到七牛,所以在不想付费使用七牛云 HTTPS的图片的话,唯一办法就是把图片本地化然后替换数据库中图片的地址。这个也很简单的,直接图片本地化就行,具体方法请参考《如何将存储在七牛云中的图片批量下载到本地?》,我下完整个站点的图片也就是分把钟的事情,挺快的。替换数据库图片地址就不说了,参考上面第二点吧。

第一次折腾站点升级HTTPS 虽胜尤败 海纳百川 第4张

逐项排查页面是否都有小绿锁

其实一个站点无法就是几个页面,分别是首页、列表页、文章页、页面,其他都差不多,所以只需要看看这几个页面是否正常就行,不正常的话,就通过浏览器的“查看元素”功能来看那些加载的资源(比如图片或 JS 文件等)没有替换为 HTTPS,然后看看路径在哪里,逐一排查,逐一修改即可。

申请百度站长平台的 HTTPS 认证

到了这一步,我的整个站点所有页面都已经有小绿锁了,而且访问的 HTTP 网址都跳转到 HTTPS(又拍云的强制跳转 HTTPS 功能),这次升级 HTTPS 可以说堪称完美。

没想到在百度站长平台申请 HTTPS 认证的时候死活不通过,添加的 HTTPS 地图地址也抓取失败,据说 HTTPS 认证需要在源站部署 SSL,并添加 301 跳转,但是我的证书是在又拍云的 CDN 上,而且证书无法下载,所以无法部署在服务器上,连访问 HTTP 地址的状态码也是 200 的,又拍云工作人员说强制 HTTPS 跳转后先是 301 状态码然后变成 200 状态码,但是我折腾了半天还是无法再百度站长平台进行 HTTPS 认证。

第一次折腾站点升级HTTPS 虽胜尤败 海纳百川 第5张

服务器上申请 Let's Encrypt 证书

既然百度要求我们在源站上部署 SSL,所以就打算在服务器上申请 Let's Encrypt 证书重新部署,是通过 acme.sh 方式获取证书,可惜每次都在关键一步失败,错误的提示大概就是说我的这个域名已经有了一张 Let's Encrypt 证书,所以无法申请第二张 Let's Encrypt 证书。看来只能放弃使用又拍云,等3个月后又拍云给的那张 Let's Encrypt 证书过期,然后重新在服务器上申请证书并升级 HTTPS 了。

PS:这次升级 HTTPS 虽然是成功了,但是无法通过百度站长平台的 HTTPS 认证的话,就是失败,所以只能选择回退到 HTTP。

回退 HTTP 操作

这个就相当于升级 HTTPS 的翻版,把升级 HTTPS 的工作重新做一遍,只不过是把 HTTPS 变成 HTTP 而已。不过操作流程熟悉之后,折腾起来也是很容易的。

总结

虽然这次升级到 HTTPS 最终还是回到起点,但是经过这次折腾也学习到不少东西,当然也吸取了不少教训。比如不能贪图方便使用第三方的证书,而应该是在服务器上直接申请证书,方便下载和使用。虽然浪费了一个晚上和一个上午的时间,但是也摸清了很多东西,等到下一次折腾 HTTPS 的时候,一定会事半功倍的。

如果文章对你有帮助,请赞赏支持作者继续创作!

历史上的今天:

文章标签: ,   ,   ,   ,  
原文地址:http://yigujin.cn/1341.html
温馨提示:文章内容仅代表作者个人观点,不代表boke112导航赞同其观点和对其真实性负责!
版权声明:本文为投稿文章,感谢 懿古今 的投稿,版权归原作者所有,欢迎分享本文,转载请保留出处!
WordPress虚拟主机和VPS服务器推荐

 发表评论


  1. 高冷化学姐
    高冷化学姐 【小白】 @回复

    用的阿里云的免费证书,也是经过几天百度摸索,用的重定向,不光要改虚拟主机的conf文件,也要改nginx.conf 多说都是泪[泪] [泪]

  2. Hewie
    Hewie 【秀才】 @回复

    网站还要完善,暂时不折腾

  3. Parkmimi
    Parkmimi 【秀才】 @回复

    emm我曾经为了解决https链接CSS和JS样式的问题忙了几天 最后我仅仅是启用了一个 WORDPRESS HTTPS插件 [黑线]

  4. 光
    【小白】 @回复

    折腾过…还好备份了 失败

  5. 木子
    木子 【小白】 @回复

    10月1所有博客全部关闭在线留言功能是真的吗?

    • 懿古今
      懿古今【村长】2017-09-23 17:47  回复

      @木子[疑问] 有这个说法吗?没听说

      • 木子
        木子 【小白】2017-09-24 11:14  回复

        @懿古今国家互联网信息办公室于今天(8月25日)公布了《互联网跟帖评论服务管理规定》(以下简称《规定》),自2017年10月1日起施行。

  6. 幻想
    幻想's Blog 【举人】 @回复

    我服务器不适合折腾

  7. 焱鹏博客
    焱鹏博客 【小白】 @回复

    非得启用HTTPS吗,感觉没什么用。

  8. 橘子书
    橘子书 【丞相】 @回复

    用https,真心要考虑支出啊,不然的话,免费的cdn,够折腾人的。所以,我想想还是容后再弄

    • 懿古今
      懿古今【村长】2017-09-23 17:51  回复

      @橘子书现在免费支持HTTPS的CDN也有,比如又拍云、360的CDN、腾讯云都不错的。不过我还是再想想,等卢松松博客、知更鸟、我爱水煮鱼等大神都上HTTPS之后,我再跟进

  9. 闲鱼
    闲鱼 【状元】 @回复

    尝试过了以后真要上https,会有经验多了啊,我有空也去试试

    • 懿古今
      懿古今【村长】2017-09-23 17:54  回复

      @闲鱼是的,上过一次就有经验了,不过下次上HTTPS可能要等很久才行

  10. 大伟哥博客
    大伟哥博客 【举人】 @回复

    我的博客开启了https,自己通过脚本申请的证书,过程也很简单,但一直没有用过CDN,是不是这两个同时折腾会比较麻烦一些?

  11. 明月登楼学习笔记
    明月登楼学习笔记 【进士】 @回复

    我才发现Let’s Encrypt证书来头好大呀!

  12. 钓鱼小站
    钓鱼小站 【进士】 @回复

    暂时没有要弄的想法,虽然绿标诱人。

  13. 赚钱小站
    赚钱小站 【举人】 @回复

    看到博主这么麻烦,我就不想搞了。

  14. 小萝博客
    小萝博客 【状元】 @回复

    不妨试试半加密方式,没这么麻烦

  15. 很文博客
    很文博客 【秀才】 @回复

    其实百度认证很简单,晚上访问量少的时候,把首页页面全撤了,留一两个全https的页面就可以了,一般百度是智能审核的,每天有三次机会,15分钟内反馈信息,按照反馈信息多做几次就可以了。

  16. 靠谱学生兼职网
    靠谱学生兼职网 【尚书】 @回复

    估计我是没有空折腾了

  17. 阿财博客
    阿财博客 【秀才】 @回复

    值得学习,有空我也试试看

  18. 雅兮网
    雅兮网 【尚书】 @回复

    也有心弄下https 但是我现在在用的CDN是需要一定套餐才支持ssl的,唉,没钱啊

    • 懿古今
      懿古今【村长】2017-09-23 17:56  回复

      @雅兮网免费支持HTTPS流量的CDN好的没有多少,不过360、又拍云等可以试试

  19. 明月登楼的博客
    明月登楼的博客 【王爷】 @回复

    博主加油呀!

  20. 里维斯社
    里维斯社 【举人】 @回复

    很实用的经历,不错,以后也折腾HTTPS的时候说不定用的上。另外,第一段最后一行有错字。