将 WordPress 站点迁移到 SSL 有时会导致意外问题。如果您将 SSL 添加到现有 WordPress 站点并遇到错误,那么您很幸运。在本指南中,我们将介绍如何解决 WordPress 中最常见的 SSL/HTTPS 问题。
什么是 SSL / HTTPS 以及为什么应该立即开始使用它?
SSL / HTTPS 是一种加密方法,可保护用户浏览器与您的WordPress 托管服务器之间的连接。这使得黑客更难窃听连接。
每个启用 SSL / HTTPS 的站点都颁发一个唯一的 SSL 证书,用于识别目的。如果服务器假装使用 HTTPS,并且其证书不匹配,那么大多数现代浏览器都会警告用户不要连接到网站。
Google 鼓励所有网站所有者使用 SSL / HTTPS 以提高整体网络安全性。
这就是为什么谷歌的 Chrome 网络浏览器将所有没有 SSL 证书的网站标记为“不安全”。
浏览器地址栏中的“不安全”标签会给您的客户留下对您业务的不良印象。
除此之外,如果您想建立在线商店或想使用PayPal、Stripe、Authorize.net 等支付服务,您还需要启用 SSL / HTTPS。
考虑到利弊,所有网站都需要切换到 SSL/HTTPS。
如果您还没有这样做,请转到我们的指南,了解如何正确地将 WordPress 从 HTTP 移动到 HTTPs,以获取分步说明。
推荐:请参阅我们的指南,了解如何获取免费 SSL 证书或从Domain.com以折扣价购买 SSL 证书。
话虽如此,让我们来看看 WordPress 中 SSL/HTTPS 的一些常见问题以及如何解决这些问题。
1. 修复 NET::ERR_CERT_INVALID 错误
此错误消息出现在 Google Chrome 中。其他浏览器显示此错误的消息略有不同,但它基本上警告用户他们与您网站的连接不安全。
此错误消息表明用户的浏览器不接受网站提供的证书。这可能由于多种原因而发生:
SSL 证书颁发给不同的域名或子域。
证书已过期。
您的浏览器无法识别证书颁发机构。
如果您购买了 SSL 证书并要求您的WordPress 托管服务提供商为您安装它,那么您可以联系他们为您修复它。
如果您手动安装了 SSL 证书,请尝试重新安装它或联系您的 SSL 证书提供商以获得支持。
2. 修复将 WordPress 迁移到 SSL/HTTPS 后的混合内容错误
混合内容错误是由仍在使用 URL 中不安全的 HTTP 协议加载的源(图像、脚本或样式表)引起的。
如果是这种情况,那么您将无法在您网站的地址栏中看到安全挂锁图标。
有两种方法可以修复 WordPress 中的 SSL/HTTPS 混合内容错误。我们将向您展示它们,然后您可以选择最适合您的一种。
1. 使用插件修复 WordPress 中的混合内容错误
这种方法比较简单,推荐给初学者。
首先,您需要确保您拥有 SSL 证书。如果您不确定自己是否拥有,请参阅我们的指南,了解如何为您的 WordPress 网站获取免费 SSL 证书。
然后,只需安装并激活真正简单的 SSL插件。有关更多详细信息,请参阅我们关于如何安装 WordPress 插件的分步指南。
激活后,您需要访问设置 » SSL页面查看插件设置。真正简单的 SSL 开箱即用,将自动处理 SSL / HTTPS 设置并修复混合内容错误。
注意:该插件尝试通过使用输出缓冲技术来修复混合内容错误。这可能会对您的网站产生负面的性能影响。但是,如果您使用的是缓存插件,那么它只会影响第一页加载。
2. 手动修复 WordPress 中的混合内容错误
此方法需要手动排查,但更有效,性能更好。
首先,您需要确保在 WordPress 设置中使用 HTTPS。转到设置»常规页面并确保 WordPress 地址和站点地址选项具有 HTTPS URL。
如果您看到以 HTTP 开头的 URL,那么您需要继续将它们更改为 HTTPS。不要忘记单击保存更改按钮来存储您的设置。
接下来,您需要在WordPress 数据库中找到旧的 HTTP URL,并将它们替换为新的 HTTPS URL。
您可以通过安装和激活Better Search Replace插件轻松做到这一点。有关更多详细信息,请参阅我们关于如何安装 WordPress 插件的分步指南。
激活后,您需要访问工具»更好的搜索替换页面。在“搜索”字段中,您需要使用 HTTP 添加您的网站 URL。之后,在“替换”字段中使用 https 添加您的网站 URL。
该插件现在将更新您的 WordPress 数据库中的 URL。
如果您仍然看到混合内容错误,那么下一步是对 WordPress 主题和插件中的 URL 进行故障排除。
使用浏览器的检查工具,您将需要找到导致错误的资源以及它们的加载位置。
对于主题资源,您需要在 WordPress 主题中找到它们,并将 HTTP 替换为 HTTPS。
这部分对于初学者来说可能有点困难,因为他们必须在所有主题文件中查找 URL。
如果您自己找不到它们,那么您也可以联系主题开发人员并要求他们更新主题。他们将需要使用 WordPress 最佳实践来加载文件,这将解决 HTTP/HTTPS 问题。
由 WordPress 插件加载的混合内容也是如此。我们不建议您自己编辑插件文件来更改 URL。您应该通知插件开发人员并要求他们进行更新。同时,您可以禁用您网站上的插件或寻找替代插件。
3. 修复迁移到 SSL/HTTPS 后出现的太多重定向错误
WordPress 允许您通过在wp-config.php 文件中输入以下行来为管理区域强制实施 SSL/HTTPS 。
define(‘FORCE_SSL_ADMIN’, true);
但是,在某些情况下,仅此设置会导致“重定向过多”错误。要解决此问题,您需要将以下代码添加到 wp-config.php 文件中,就在“就是这样,停止编辑!快乐的博客。
define(‘FORCE_SSL_ADMIN’, true);// in some setups HTTP_X_FORWARDED_PROTO might contain // a comma-separated list e.g. http,https// so check for https existenceif (strpos($_SERVER[‘HTTP_X_FORWARDED_PROTO’], ‘https’) !== false) $_SERVER[‘HTTPS’]=’on’;
4. 修复 WordPress HTTP 到 HTTPS 重定向
WordPress 不会自动将 HTTP 请求重定向到 HTTPS,除非您告诉它这样做。如果您使用的是像真正简单的 SSL 这样的插件,那么它会处理重定向。否则,您将不得不手动设置重定向。
要设置 HTTP 到 HTTPS 重定向,您需要将以下代码添加到您的.htaccess 文件中。
我们希望本文能帮助您解决 WordPress 中 SSL / HTTPS 的一些常见问题。如果您遇到本文未涉及的问题,请发表评论让我们知道。我们将使用解决方案更新文章。您可能还想查看我们的终极WordPress 安全指南,其中包含针对初学者保护其 WordPress 网站的分步说明。