WordPress网站从HTTP迁移到HTTPS深入指南

2018年7月,谷歌浏览器开始将所有非HTTPS网站标记为“不安全”,无论它们是否收集数据。从那时起,HTTPS变得比以往任何时候都更加重要!

在今天的文章中,我们将深入探讨从HTTP到HTTPS的迁移,并分享实用技巧,以期使您的WordPress网站的过渡尽可能顺利。对于WordPress网站所有者来说,如果您能积极主动,那总是很棒的。

由于新的网络协议、SEO优势以及更准确的推荐数据,现在正是将您的WordPress网站迁移到HTTPS的最佳时机。在下面了解更多原因和方法。

  1. 什么是HTTPS?
  2. 为什么要使用HTTPS?
  3. HTTP到HTTPS迁移指南

什么是HTTPS?

HTTPS(安全超文本传输​​协议)是一种允许您的浏览器或Web应用程序与网站安全连接的机制。HTTPS是帮助确保您的浏览安全的措施之一。

这包括登录您的银行网站、获取信用卡信息,甚至登录您的 WordPress 网站的后端。WordPress网站上的HTTPS要求您拥有用于加密的SSL证书。这确保了任何数据都不会以纯文本形式传递。

根据Builtwith的数据,截至2022年10月,前10,000个网站中有73.73%使用HTTPS。这比2018年2月的49.8%有所上升:

热门网站的HTTPS使用情况

热门网站的HTTPS使用情况

MozCast报告称,截至2022年5月,超过98.9%的搜索查询是通过HTTPS进行的,高于2016年1月的26%。这表明许多网站正在从HTTP迁移到HTTPS。

甚至谷歌也在推动其产品和服务的100%加密标记。截至2022年5月,大约95%的Google流量是通过HTTPS传输,高于2013年12月的48%。

MozCast HTTPS查询

MozCast HTTPS查询

根据Firefox遥测数据和Let’s Encrypt统计数据,超过78%的页面加载现在是HTTPS。

为什么要使用HTTPS?

WordPress网站所有者应该关心HTTPS并考虑现在而不是以后从HTTP迁移到HTTPS的原因有很多。

1. 安全

当然,HTTPS的最大原因是增加了安全性。您现在通过从HTTP迁移到HTTPS,通过加密的SSL/TLS连接为您的网站提供服务。这意味着数据和信息不再以纯文本形式传递。对于处理信用卡信息的电子商务网站,这是必不可少的。技术上没有法律要求,但您作为企业有责任保护您的客户数据。

这也适用于您的WordPress登录页面或博客。如果您通过HTTP运行多作者WordPress网站,则每次有人登录时,该信息都会以纯文本形式传递给服务器。HTTPS对于维护安全的网站和浏览器连接至关重要。这样,您可以更好地防止黑客访问您的网站。

2. 搜索引擎优化

Google已经正式表示HTTPS是一个排名因素。虽然这只是一个很小的排名因素,但你们中的大多数人可能会利用在SERP中获得的任何优势来击败竞争对手。

由于谷歌推动大家将HTTP重定向到HTTPS,你可以打赌这个排名因素的权重在未来很可能会增加。Semrush的一项研究发现, Google上98%的表现最佳的精选片段内容使用HTTPS。

3. 信任和信誉

根据最近的研究,大多数互联网用户都担心他们的数据如何在网上被截获或滥用。

HTTPS可以通过建立我们所说的SSL信任来帮助您的业务。通过查看URL旁边的挂锁图标,客户会更加安心,因为他们知道他们的数据更安全。

4. 推荐数据

这个原因适用于所有的营销人员。如果您使用Google Analytics,您可能对推荐数据很熟悉。许多人没有意识到HTTPS到HTTP推荐数据在Google Analytics中被阻止。那么数据会发生什么变化呢?其中大部分只是与“直接流量”部分混为一谈。如果有人从HTTP转到HTTPS,则仍会传递引荐来源网址。

这也很重要,因为如果您的引荐流量突然下降,但直接流量上升,则可能意味着您的较大引荐来源之一最近已迁移到HTTPS。反之亦然。查看Moz关于直接流量的更深入指南。

5. Chrome警告

截至2018年,Chrome 68及更高版本已将所有非HTTPS网站标记为“不安全”,即使它们不收集数据:

Chrome上的连接不安全

Chrome上的连接不安全

2021年,对于不完整的URL,浏览器开始默认使用HTTPS。例如,如果用户键入“domain.com”,Chrome将自动使用“https://domain.com”。如果HTTPS由于缺少SSL/TLS而失败,它将恢复为HTTP。

Chrome拥有超过77%的浏览器市场份额,因此这将影响您的许多访问者。您还可以在Google Analytics中的受众群体>技术>浏览器与操作系统下查看访问者正在使用哪些浏览器:

在Google Analytics中检查浏览器

在Google Analytics中检查浏览器

谷歌向访问者明确表示您的WordPress网站可能无法在安全连接上运行。以下是Google关于如何避免警告的一些提示。

Firefox也紧随其后,在2017年发布了Firefox 51,为收集密码的非安全站点显示了一个带有红线的灰色挂锁。当然,如果您将整个站点迁移到HTTPS,那么您不必担心这一点:

您的连接不是私密连接

您的连接不是私密连接

如果您尚未迁移到HTTPS,您可能还会开始从Google Search Console收到以下警告:

致: http://www.domain.com的所有者

以下URL包含将触发新Chrome警告的密码或信用卡详细信息的输入字段。查看这些示例以查看这些警告将出现在何处,您可以采取措施帮助保护用户的数据。该列表并不详尽。

http://www.domain.com

新警告是长期计划的第一阶段,将通过非加密HTTP协议提供的所有页面标记为“不安全”。

6. 性能

最后但同样重要的是,由于名为HTTP/2的协议,那些通过HTTPS运行经过适当优化的站点通常可以看到速度提高。

由于浏览器支持,HTTP/2需要HTTPS。性能提升有多种原因,例如HTTP/2能够支持更好的多路复用、并行性、Huffman编码的HPACK压缩、ALPN扩展和服务器推送。过去在HTTPS上运行的TLS开销相当大,但现在要少得多。

TLS 1.3也发布了,它可以进一步加快HTTPS连接!

同样重要的是要注意,域分片和连接等Web性能优化可能会损害您的性能。这些现在已经过时,并且在大多数情况下不应再使用。

默认情况下,网络上的所有内容都应加密。– Jeff Atwood,Stack Overflow的联合创始人

HTTP到HTTPS迁移指南

是时候进入有趣的部分了:将您的WordPress网站从HTTP迁移到HTTPS。让我们首先回顾一些基本要求,以及一些需要注意的事项。

  • 您将需要SSL证书。我们将在下面对此进行更详细的介绍。
  • 仔细检查以确保您的WordPress主机和CDN提供商支持HTTP/2。
  • 您需要留出大量时间将HTTP重定向到HTTPS。迁移不是5分钟就能完成的事情。
  • 仔细检查以确保您使用的所有外部服务和脚本都有可用的HTTPS版本。
  • 重要的是要知道,除非您使用支持分享恢复的插件,否则您将失去所有文章和页面上的社交分享计数。这是因为您的分享计数基于查看HTTP版本的API,并且您无法控制3rd方社交网络。
  • 根据您网站的大小,Google可能需要一段时间才能重新抓取所有新的HTTPS页面和文章。在此期间,您可能会看到流量或排名的变化。
  • 不要忘记本地引用。

我们建议在开始之前关闭CDN集成并禁用任何缓存插件,因为这些会使事情复杂化。

1. 选择SSL证书

如果您没有SSL证书,您需要做的第一件事就是购买SSL证书。您可以选择三种主要类型的证书:

  • 域验证:单个域或子域(电子邮件或DNS验证),在几分钟内发布。这些通常可以低至每年9美元购买。
  • 业务/组织验证:单个域或子域需要提供更高级别的安全/信任的业务验证,在1-3天内发布。
  • 扩展验证:单个域或子域需要提供更高级别的安全/信任的业务验证,在2-7天内发布。

Google建议使用2048位或更高的密钥证书。您可以从Comodo、DigiCert、GeoTrust、Thawte、Rapid SSL或Trustwave购买证书 。还有更便宜的替代品,例如GoGetSSL、Namecheap和GoDaddy。

Let’s Encrypt还提供了一种获取免费SSL证书的方法。请咨询您的WordPress主机和CDN提供商,看看他们是否有Let’s Encrypt集成。您还可以按照Certbot指南了解如何手动安装它们。Let’s Encrypt证书每90天过期一次,因此必须有一个自动化系统。

2. 安装自定义SSL证书

如果您购买了SSL证书,则需要在您的WordPress网站上安装SSL证书。在通过供应商设置的证书时,系统会要求您提供服务器类型。如果您的网络服务器是Nginx。如果该选项不可用,那么“其他 ”也可以使用。

SSL提供者将需要一个CSR代码来创建/签署证书文件。如需生成CSR代码和RSA密钥,请填写以下表格:https://www.ssl.com/online-csr-and-key-generator/ 。

我们建议填写每个字段,但至少应填写以下内容(如下面的屏幕截图所示):

  • 通用名称(域名)
  • 电子邮件地址
  • 组织
  • 城市/地区
  • 州/县/地区
  • 国家

注意:对于通用名称字段,如果您正在生成通配符证书,则需要输入您的域名,例如 *.domain.com。

生成CSR表格

生成CSR表格

该表单将生成您的私钥文件和CSR。确保保存它们,因为没有它们,证书将无法使用:

CSR和私钥

CSR和私钥

接下来,使用您的SSL提供商上传您的CSR以重新生成您的SSL证书 (.cert)。

然后,您需要去您的WordPress主机并给他们证书和私钥。如果您是宝塔用户,您可以登录仪表板-网站,然后找到您需要配置SSL的网站,然后点击该网站对应的SSL证书操作项。

选择其他证书,然后,您就可以在那里添加您的私钥和证书:

添加自定义SSL

添加自定义SSL

完成后,选择保存退出即可。

3. 验证您的SSL证书

现在您已经安装了SSL证书,您需要对其进行验证以确保一切设置正确。一种快速简便的方法是使用Qualys SSL Labs提供的免费SSL检查工具。如果一切都正确,你应该在测试中获得A字母等级,如下图所示:

ssllabs

检查SSL证书等级

查看关于如何执行SSL检查的更深入的教程。

4. 将HTTP重定向到HTTPS

验证SSL证书后,接下来必须将所有HTTP流量永久重定向到HTTPS。在WordPress中将HTTP重定向到HTTPS时有几个选项。

这使您可以在服务器级别单击几下将HTTP流量自动重定向到HTTPS。你也可以在你的网络服务器的配置中手动完成,或者使用免费的WordPress插件。

注意:我们的示例都包含一个301重定向指令,这是在SEO方面实现它的正确方法。使用不同类型的重定向可能会损害您的排名。同样重要的是要知道301重定向可能不会通过100%的链接权重,即使Google可能会说他们会这样做。查看Cyrus在Moz的这篇关于HTTPS迁移和301重定向的文章。

选项 1:在Nginx中将HTTP重定向到HTTPS

如果您的Web服务器正在运行Nginx,您可以通过将以下代码添加到Nginx配置文件来轻松地将HTTP重定向到HTTPS:

server {
listen 80;
server_name domain.com www.domain.com;
return 301 https://domain.com$request_uri;
}

这是重定向在Nginx上运行的WordPress的推荐方法。

在Apache中将HTTP重定向到HTTPS

如果您的Web服务器正在运行Apache,您可以通过将以下代码添加到您的.htaccess文件来将所有HTTP流量重定向到HTTPS:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这是重定向在Apache上运行的WordPress的推荐方法。

选项 2:使用Really Simple SSL插件将HTTP重定向到HTTPS

您必须从HTTP重定向到HTTPS的第三个选项是使用免费的Simple SSL插件:

Really Simple SSL

Really Simple SSL

我们不建议将此方法作为永久解决方案,因为第三方插件可能会引入另一层问题和兼容性问题。这是一个很好的临时解决方案,但您应该更新硬编码的HTTP链接,我们将在下一步中向您展示。

实施HSTS标头(可选)

HSTS(HTTP严格传输安全)是您添加到Web服务器的安全标头,当站点通过HTTPS运行时,它会强制浏览器使用安全连接。这有助于防止中间人攻击 (MitM) 和 cookie 劫持。您可以将上述301重定向与HSTS标头一起使用。查看我们关于如何添加HSTS的深入文章。

5.检查重定向过多

添加从HTTP到HTTPS的重定向后,您应该仔细检查以确保没有太多重定向。这个问题很常见,会影响您的WordPress网站的速度。您可以使用Patrick Sexton的重定向映射器工具快速查看您的网站上有多少重定向。

下面您将看到一个设置不正确的重定向示例。这在使用重定向映射器时很容易发现:

重定向设置不正确

重定向设置不正确

您可以看到在www和非www版本上都发生了重复的HTTPS重定向。

以下是正确设置重定向的示例:

重定向设置正确

重定向设置正确

如您所见,只有一个重定向。您可以查看我们关于WordPress重定向和最佳实践的深入文章,以获得更快的性能。

6. 更新硬编码的HTTP链接

现在您有了重定向,是时候修复所有那些硬编码的HTTP URL。通常,不建议对URL进行硬编码。但是,随着时间的推移,您很可能会(我们都这样做)。以下是将您的HTTP链接更新为HTTPS的一些选项。

选项 1:Better Search Replace插件

您可以使用一个名为Better Search Replace的免费插件,由WordPress团队在Delicious Brains提供:

Better Search Replace

Better Search Replace

该插件可以免费使用。在您的站点上安装并激活后,您可以导航到工具 >Better Search Replace以开始使用它。

选项 2:interconnect/it Search Replace DB PHP Script

运行WordPress搜索和替换的第二种选择是使用来自互连/它的免费PHP脚本,称为Search Replace DB。对于任何HTTP到HTTPS的迁移,这是我们最喜欢的工具之一。

重要的!如果您不知道自己在做什么,使用此脚本可能会破坏您的WordPress网站。如果您对此感到不自在,请先咨询开发人员或您的网络托管服务商。

要使用该脚本,只需下载zip文件,提取名为search-replace-db-master的文件夹,然后将其重命名为其他名称。在我们的示例中,我们将其重命名为update-db-1551。然后,通过FTP、SFTP或SCP将其上传到Web服务器的公共目录。这通常与包含/wp-content文件夹的目录相同。

然后在浏览器中导航到您的私密文件夹,例如https://domain.com/update-db-1551:

互连搜索和替换脚本

互连搜索和替换脚本

该脚本将自动尝试查找并填充数据库字段,但您必须检查详细信息是否正确以及它是否适用于您希望执行搜索/替换操作的数据库。您可以先单击Dry Run以查看它将更新/替换的内容。然后,当您准备好时,单击Live Run, 它将执行数据库更新和 WordPress 搜索和替换。

HTTPS 迁移的一个示例是将“http://yourdomain.com”替换为“https://yourdomain.com”。

搜索替换选项

搜索替换选项

由于安全原因,完成后删除此脚本也很重要。您可以单击“Delete me”按钮。如果您不这样做,它可能会使您的网站容易受到攻击。

还建议您仔细检查您的Web服务器并确认文件夹/脚本已被完全删除。注意:此脚本将更新您数据库中的所有条目,包括您的WordPress站点URL、页面和文章上的硬编码链接等。

如果您在wp-config.php文件中硬编码您的主页、站点或WP内容区域,请确保将它们更新为HTTPS:

define('WP_HOME', 'https://yourdomain.com');
define('WP_SITEURL', 'https://yourdomain.com');
define( 'WP_CONTENT_URL', 'https://yourdomain.com/wp-content' );

如果您有CDN并使用CNAME,例如cdn.domain.com,您可能还想再次运行上述脚本以查找任何硬编码的URL http://cdn.domain.com并将它们替换为https://cdn.domain.com。

选项 3:使用WP-CLI搜索和替换

您还可以使用WP-CLI为那些不喜欢离开命令行的精通技术的人和开发人员更新您的链接。我们建议查看此高级搜索并替换WP-CLI指南。

7. 更新自定义脚本和外部库

现在您已经更新了旧的硬编码URL,您将需要检查您可能已添加到页眉、页脚等的任何自定义脚本或外部库。这可能包括Google jQuery、Font Awesome、CrazyEgg、AdRoll、Facebook , Hotjar等

对于Google jQuery,您只需将其更新为指向HTTPS版本:

<script src="https://ajax.loli.net/ajax/libs/jquery/3.1.0/jquery.min.js"></script>

每个提供商和服务都应该有一个可以切换到的HTTPS版本。

8. 将CDN从HTTP迁移到HTTPS

接下来,如果您使用的是CDN,您还需要将其迁移到HTTPS。否则,您将在WordPress网站上遇到混合内容警告问题。

Cloudflare CDN替代品

如果您正在寻找Cloudflare CDN替代品,有很多选择。最受欢迎的一种是KeyCDN。

这种高性能CD​​N通过将您的网站内容缓存在全球服务器上,加快了向访问者交付网站内容的速度。它还提供针对DDoS攻击和其他威胁的安全性和保护。

另外两个选项是Amazon CloudFront, 它是Amazon Web Services (AWS) 的一部分,以及Sucuri,它有助于优化网站性能和速度。它具有广泛的安全功能。

以下是一些有关为不同的第三方CDN提供商安装和设置SSL的有用链接和教程。

  • 在KeyCDN上设置SSL
  • 在Cloudflare上设置SSL  (我们建议使用Full SSL)
  • 在MaxCDN上设置SSL
  • 在Amazon CloudFront上设置SSL

注意:有些甚至集成了Let’s Encrypt,这意味着SSL是免费的。如果您遇到问题,您可以随时咨询您的CDN提供商,以帮助您完成HTTP到HTTPS的迁移。

更新CDN后,您需要确保在用于集成的任何WordPress插件中更新它。在下面的示例中,我们使用的是CDN Enabler:

将CDN更改为HTTPS

将CDN更改为HTTPS

我们将通过HTTP的URL翻转为HTTPS,然后在底部启用CDN HTTPS选项。完成后,选择保存更改 按钮。

9. 检查您的网站是否有混合内容警告

接下来,您将需要检查您的WordPress网站以确保您没有收到混合内容警告。加载HTTPS和HTTP脚本或内容时会出现这些警告。你不能同时加载两者。

当您迁移到HTTPS时,一切都需要通过HTTPS运行。Wired记录了他们从HTTP到HTTPS的过渡以及他们遇到的一个障碍:

迁移到HTTPS的最大挑战之一是准备我们所有的内容以通过安全连接交付。如果页面通过HTTPS加载,则所有其他资产(如图像和Javascript文件)也必须通过HTTPS加载。我们看到大量关于这些“混合内容”问题的报告,或者在安全的HTTPS页面上下文中加载不安全的HTTP资产的事件。为了正确地进行部署,我们需要确保混合内容问题更少——确保我们尽可能安全地交付WIRED.com的内容。

下面是一些示例,说明如果您不修复这些警告,浏览器会发生什么。

Chrome混合内容警告示例

下面是当混合内容警告触发时Chrome中发生的情况的示例:

Chrome混合内容警告

Chrome混合内容警告

Firefox混合内容警告示例

以下是Firefox在混合内容警告触发时发生的情况的示例:

Firefox混合内容警告

Firefox混合内容警告

Internet Explorer混合内容警告示例

IE混合内容警告

IE混合内容警告

下面是一个示例,说明当混合内容警告触发时Internet Explorer中发生的情况:

如您所见,IE可能是最糟糕的一种,因为它会破坏页面的呈现,直到单击弹出窗口为止。

JitBit有一个很棒的免费小工具,叫做SSL Check,您可以运行它来快速扫描您的网站或URL以查找不安全的内容。该工具将抓取您的HTTPS WordPress站点并搜索将在浏览器中触发警告消息的非安全图像、脚本和CSS文件。每个网站抓取的页面数量限制为200个。

您还可以使用Chrome DevTools通过查看网络请求面板来快速检查任何页面。安全面板实际上也非常有用。您可以立即看到任何不安全的来源,然后单击请求以查看它们的来源:

在Chrome Devtools中检查HTTPS

在Chrome Devtools中检查HTTPS

还有一个名为HTTPS Checker的桌面软件 ,您可以安装它来扫描您的站点:

HTTPS Checker软件

HTTPS Checker软件

经过重大更改后,它可以帮助您检查“不安全”的警告和内容。它适用于Windows、Mac和Ubuntu。免费计划允许您检查多达100页。

10. 更新谷歌搜索控制台配置文件

现在您的WordPress网站已在HTTPS上启动并运行(希望没有警告),是时候深入研究营销方面了。其中一些非常重要,所以不要跳过它们!

您首先要为HTTPS版本创建一个新的Google Search Console配置文件。

在GSC中添加HTTPS属性

在GSC中添加HTTPS属性

创建新的HTTPS版本后,您需要重新提交站点地图文件。新的HTTPS版本:

HTTPS站点地图文件

HTTPS站点地图文件

如果您有来自不良反向链接的拒绝文件或受到处罚,您将需要重新提交。如果您现在不这样做,您可能会永久损害您的网站。

转到Google的Disavow Tool并单击您的原始HTTP配置文件。下载拒绝文件(如果存在)。然后返回工具并在HTTPS版本下提交您的拒绝文件。

注意:完成所有这些操作后,您可以安全地删除Google Search Console中的HTTP配置文件。

11. 必应网站管理员工具

Bing Webmaster Tools与Google Search Console略有不同:

Bing Webmaster Tools

必应网站管理员工具HTTPS

您无需创建新的HTTPS配置文件。相反,您可以只提交新创建的HTTPS站点地图。

12.谷歌分析

接下来,您需要更新您的Google Analytics(分析)媒体资源和数据视图。这不会影响您的分析数据:它只会在将您的网站链接到Google Search Console等时有所帮助。

要更新您的属性,请单击您的域属性设置,然后在默认URL下将其更改为HTTPS://版本:

将Google Analytics(分析)媒体资源更新为HTTPS

将Google Analytics(分析)媒体资源更新为HTTPS

要更新您的视图,请单击您的域视图设置。在网站的URL下,将其更改为HTTPS://版本:

将Google Analytics(分析)视图更新为HTTPS

将Google Analytics(分析)视图更新为HTTPS

将Google Analytics链接到GSC

将Google Analytics链接到GSC

您还需要将您在第8步中创建的新创建的Google Search Console配置文件与您的Google Analytics帐户重新关联。为此,请点击您域的属性设置,然后选择Adjust Search Console

然后,您可以链接新的HTTPS GSC配置文件。将这些链接在一起可以使搜索查询数据流入您的Google Analytics(分析)帐户。

13. YouTube频道

如果您有YouTube频道,您需要在Google Search Console中将您的网站与新的HTTPS版本重新关联。否则,您将收到有关HTTPS链接无效的注释和其他消息的错误。

在您的YouTube仪表板中,单击您的频道,然后进入Advanced。接下来,将您的域更改为新的HTTPS版本,然后单击Add。您可能必须删除旧的,然后重新添加它。然后,您必须通过进入Google Search Console、导航到该站点的消息并选择Approve来批准它。

14. 杂项

当涉及到从HTTP到HTTPS的迁移时,就是这样!这里还有一些您还想更新的杂项。其中一些可能适用也可能不适用,具体取决于您使用的内容。

  • 确保检查您的robots.txt是否可访问且正常工作。
  • 确保所有规范标签都指向HTTPS版本(如果您按照上面的第3步操作,这应该已经完成​​)。
  • 如果您运行诸如Disqus之类的评论插件,则必须将您的Disqus评论从HTTP迁移到HTTPS。
  • 在您的电子邮件营销软件中更新您的URL
  • 更新PPC广告网址:AdWords、Bing Ads、AdRoll、Facebook Ads等。
  • 更新社交媒体链接(Facebook、Twitter、Pinterest、Google+等)

小结

HTTPS不仅仅是Google排名因素。这是一个重要的安全协议,有助于保护您的网站和访问者免受攻击。

发表回复

后才能评论