如何修复 WordPress 中的常见 SSL 问题(初学者指南)

将 WordPress 网站移至 SSL 有时会导致意外问题.如果您将 SSL 添加到现有 WordPress 站点并遇到错误,那么您很幸运.在本指南中,我们将介绍如何解决 WordPress 中最常见的 SSL/HTTP 问题.

Fixing common HTTPS/SSL issues in WordPress

什么是 SSL/HTTPS 以及为什么您应该立即开始使用它?

SSL/HTTPS 是一种加密方法,可保护用户浏览器与您的 WordPress 托管服务器之间的连接.这使得黑客更难窃听连接.

每个启用 SSL/HTTPS 的站点都会颁发一个唯一的 SSL 证书以进行识别.如果服务器假装使用 HTTPS,并且其证书不匹配,那么大多数现代浏览器都会警告用户不要连接到该网站.

Insecure connection warning

Google 鼓励所有网站所有者使用 SSL/HTTPS 以提高整体网络安全性.

这就是 Google 的 Chrome 网络浏览器将所有没有 SSL 证书的网站标记为"不安全"的原因.

Chrome HTTP not secure

浏览器地址栏中的"不安全"标签会给您的客户留下对您业务的不良印象.

除此之外,如果您想开设在线商店或想使用 PayPal、Stripe、Authorize.net 等支付服务,您还需要启用 SSL/HTTPS.

考虑到利弊,所有网站都需要切换到 SSL/HTTPS.

如果您还没有这样做,那么请转到我们的指南,了解如何正确地将 WordPress 从 HTTP 迁移到 HTTP,以获取分步说明.

推荐:查看我们的指南,了解如何从 Domain.com 获取免费 SSL 证书或以折扣价购买 SSL 证书.

话虽如此,让我们来看看 WordPress 中 SSL/HTTPS 的一些常见问题以及如何解决这些问题.

1.修复 NET::ERR_CERT_INVALID 错误

此错误消息出现在 Google Chrome 中.其他浏览器显示此错误的消息略有不同,但它基本上警告用户他们与您网站的连接不安全.

Certificate authority invalid error

此错误消息表示用户的浏览器不接受网站提供的证书.发生这种情况的原因有很多:

  • SSL 证书颁发给不同的域名或子域.
  • 证书已过期.
  • 您的浏览器无法识别证书颁发机构.

如果您购买了 SSL 证书并要求您的 WordPress 托管服务提供商为您安装它,那么您可以联系他们为您修复它.

如果您手动安装了 SSL 证书,请尝试重新安装它或联系您的 SSL 证书提供商以获得支持.

2.将 WordPress 移至 SSL/HTTPS 后修复混合内容错误

混合内容错误是由仍在使用 URL 中不安全的 HTTP 协议加载的源(图像、脚本或样式表)引起的.

如果是这种情况,您将无法在您网站的地址栏中看到安全挂锁图标.

Not secure

有两种方法可以修复 WordPress 中的 SSL/HTTPS 混合内容错误.我们将向您展示它们,然后您可以选择最适合您的一个.

1.使用插件修复了 WordPress 中的混合内容错误

这个方法比较简单,推荐给初学者.

首先,您需要确保拥有 SSL 证书.如果您不确定是否有,请参阅我们的指南,了解如何为您的 WordPress 网站获取免费 SSL 证书.

然后,只需安装并激活真正简单的 SSL 插件.有关更多详细信息,请参阅有关如何安装 WordPress 插件的分步指南.

激活后,您需要访问设置» SSL 页面以查看插件设置.真正简单的 SSL 开箱即用,将自动处理 SSL/HTTPS 设置并修复混合内容错误.

Really Simple SSL settings

注意:该插件尝试使用输出缓冲技术修复混合内容错误.这可能会对您的网站产生负面的性能影响.但是,如果您使用的是缓存插件,那么它只会影响第一页加载.

2.手动修复 WordPress 中的混合内容错误

这种方法需要手动排查,但更有效,性能也更好.

首先,您需要确保在 WordPress 设置中使用 HTTPS.转到 设置 »常规页面,并确保 WordPress 地址和站点地址选项具有 HTTPS URL.

WordPress URL settings

如果您看到 URL 以 HTTP 开头,那么您需要继续将它们更改为 HTTPS.不要忘记单击保存更改按钮来存储您的设置.

接下来,您需要在 WordPress 数据库中找到旧的 HTTP URL,并将它们替换为新的 HTTPS URL.

您可以通过安装和激活更好的搜索替换插件轻松地做到这一点.有关更多详细信息,请参阅有关如何安装 WordPress 插件的分步指南.

激活后,您需要访问工具»更好的搜索替换页面.在"搜索"字段中,您需要使用 HTTP 添加您的网站 URL.之后,在"替换"字段中添加带有 https 的网站 URL.

Search and replace URLs in database

该插件现在将更新您的 WordPress 数据库中的 URL.

如果您仍然看到混合内容错误,那么下一步是对 WordPress 主题和插件中的 URL 进行故障排除.

使用浏览器的检查工具,您需要定位导致错误的资源以及它们从何处加载.

Using inspect tool to locate mixed content errors

对于主题资源,您需要在 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 existence
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
       $_SERVER['HTTPS']='on';

4.将 WordPress HTTP 修复为 HTTPS 重定向

WordPress 不会自动将 HTTP 请求重定向到 HTTPS,除非您告诉它这样做.如果您使用的是像真正简单的 SSL 这样的插件,那么它会处理重定向.否则,您将不得不手动设置重定向.

要设置 HTTP 到 HTTPS 重定向,您需要将以下代码添加到您的.htaccess 文件中.

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

我们希望本文能帮助您解决 WordPress 中 SSL/HTTPS 的一些常见问题.如果您遇到本文未涵盖的问题,请发表评论让我们知道.我们将使用解决方案更新文章.您可能还想查看我们的终极 WordPress 安全指南,其中包含初学者保护 WordPress 网站安全的分步说明.

13

发表回复