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

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

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

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

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

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

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

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

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

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

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

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

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

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

人工替换七牛云图片为 HTTPS

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

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

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

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

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

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

服务器上申请 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 的时候,一定会事半功倍的。

你可能感兴趣的文章

网站升级到新服务器,第一次折腾站点升级HTTPS 虽胜尤败相关推荐

  1. 阿里云nginx站点http升级https

    1.站点升级https 将站点升级为https可以分四步走: 1.搞到SSL证书 2.正确配置Nginx 3.把SSL证书上传到服务器上 4.将http重定向为https 获取SSL证书 第一步非常容 ...

  2. tbc新服务器没消息,官方消息:关于TBC服务器分离,还有全新的轮回服务器

    暴雪的最新用户调查终于来了,这一次内容非常重磅,是关于<燃烧的远征>怀旧服和经典怀旧服"fresh start"(暂且将其称为"轮回")的内容.今天 ...

  3. 一文看懂国产最大深度学习平台上新:35项全面升级,国内率先加持量子机器学习...

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 四年时间,累计开发者数量超190万,发布模型超23万,服务企业数量8.4万. 这就是国产最大深度学习开源平台--百度飞桨--在WAVE SU ...

  4. php报表服务器配置,服务器_SQL Server 2008升级报表服务器数据库,报表服务器数据库可以为一个 - phpStudy...

    SQL Server 2008升级报表服务器数据库 报表服务器数据库可以为一个或多个报表服务器实例提供内部存储.因为报表服务器数据库架构可能会因为推出新的 Reporting Services 版本而 ...

  5. 新服务器如何安装操作系统,新服务器如何安装操作系统

    新服务器如何安装操作系统 内容精选 换一换 弹性云服务器(Elastic Cloud Server)是一种可随时自动获取.计算能力可弹性伸缩的云服务器,可帮助您打造可靠.安全.灵活.高效的应用环境,确 ...

  6. 路由器端口映射,远程桌面连接--端口映射+花生壳=让人访问你个人服务器或WEB站点...

    [图]路由器端口映射,远程桌面连接--端口映射+花生壳=让人访问你个人服务器或WEB站点 2010-03-16   关键字:路由器端口映射,内网端口映射,porttunnel,端口映射,远程桌面,修改 ...

  7. 宝塔设置A站点SSL,同服务器下其他未设SSL站点访问HTTPS默认会打开A站点

    提示:本教程只针对Nginx有效,阿帕奇的比较复杂,目前没有教程!目前很多人用宝塔面板搭建https网站,但是如果你使用宝塔面板搭建的网站不止一个,且同时有http和https协议时,会发现http网 ...

  8. 9月13号魔兽服务器维护,魔兽世界怀旧服9月13日7点再次开放免费转服 11个转服新服务器一览...

    魔兽世界怀旧服官方在9月12日的中午发布公告,表示将会在9月13日,也就是中秋节的上午7点到9月16日的早上7点再次开放免费转服,其中新开放了11组新服务器,具体的内容如下. 我们预计于 9 月 13 ...

  9. 服务器上建个新文件夹怎么共享打印机,新服务器怎样设置共享打印机

    新服务器怎样设置共享打印机 内容精选 换一换 在PS-Worker架构中,集群中的节点被分为两类:参数服务器(parameter server)和工作服务器(worker).其中参数服务器存放模型的参 ...

最新文章

  1. 哈勃望远镜进一步确认宇宙在加速膨胀
  2. pythondistutils安装_安装msi后的python distutils
  3. 为什么装了ACDSEE 就不能点网站上的连接?
  4. 获取访客进站关键词_拼多多访客突然下降是为什么?拼多多访客突然暴涨又是怎么回事?...
  5. 用JS轻松实现一个录音、录像、录屏工具库
  6. linux --- vsftp
  7. DIV实现CSS 的placeholder效果
  8. UIKit框架类层次图
  9. 【java笔记】转换流
  10. C#利用QrCode.Net生成二维码(Qr码)
  11. java kind con,java.lang.ClassNotFoundException:afu.com.sun.source.tree.tree$kind
  12. 十代主板改win7_微星h410主板装win7系统及bios设置教程(支持10代usb)
  13. Linux复制文件内容到另一个文件
  14. 微信小程序上传并设置为体验版的办法(解决了没有上传按钮,体验版拉取不到数据的问题)
  15. 红帽linux能干什么,你能用Linux做什么?安徽红帽Redhat认证中心
  16. 云服务器选ssd还是hdd_服务器租用主机硬盘使用机械硬盘还是固态硬盘
  17. 获取SSL证书private key私钥文件的步骤
  18. Jmeter入门(一)使用Jmeter进行简单的性能测试
  19. Allegro任意形状铜皮倒圆角
  20. SAP BASIS ADM100 中文版 Unit 5(4)

热门文章

  1. Launchpad services provided in HANA XS in multitenant
  2. CRM Fiori pipeline应用的背景色问题
  3. ABAP Text table implementation
  4. SAP ABAP实用技巧介绍系列之Debug XSLT transformation
  5. webpack devServer
  6. SAP CRM one order框架到了S/4HANA后是如何重构的
  7. fiddler抓包工具简介
  8. pagefooter如何不占位置_小卫生间如何装修?照着小浴室装修效果图这样装
  9. mysql optimize 作用_mysql optimize table
  10. python获取文件字节数_python关于文件操作中的字符个数和字节数