WordPress SSL:这是你应该知道的

已发表: 2020-05-27
WordPress SSL
关注@Cloudways

如果您的企业有在线业务,无论您应用多少 SEO 策略,您似乎都无法获得良好的搜索引擎排名,或者访问者只是从您的网站反弹。

您决定审核您的网站并发现一个痛苦的事实:您的网站上没有安装 SSL 证书! 换句话说,您网站的安全性似乎不仅对搜索引擎而且对访问者来说都是不可靠的。

在本文中,您将了解 SSL 是什么以及它为什么重要? SSL 证书有什么优势,它是如何工作的? 存在哪种类型的 WordPress SSL 证书,哪种最适合您的网站?

这些只是您在安装 WordPress SSL 之前应该了解的一些问题。

  • 什么是 SSL?它为什么重要?
  • SSL 证书如何工作?
  • SSL 证书:验证和类型
  • 使用 SSL 证书的优势
  • 让我们加密:免费的 SSL/TLS 证书
  • 在 WordPress 上安装免费 SSL 证书
  • 在 WordPress 上安装付费 SSL 证书
  • 什么是 HSTS,为什么要使用它?
  • Cloudflare 上的 SSL 证书(可选)
  • 清除网站、托管和浏览器缓存
  • 检查 SSL 证书是否正常工作
  • 识别并修复混合内容警告
  • 为 Google Search Console 配置 HTTPS

什么是 SSL?它为什么重要?

安全套接字层 (SSL) 是服务器和浏览器之间加密通信的标准。 浏览器接收并解释该证书并验证其真实性。 一旦执行了验证,所有通过安全连接发送的数据都会被加密。 浏览器用关闭的挂锁图标显示此连接的存在,并在网址前添加 https。

安全站点封印

超文本传输​​协议安全 (HTTPS) 是两种协议的组合:HTTP 和 SSL。 HTTP 是传输数据的隧道,SSL 是加密隧道中数据的安全协议。 因此,未经授权访问读取、复制或解密服务器和客户端之间的通信是(几乎)不可能的。 典型的 SSL 证书包括:

  • 一个域名和一个公钥
  • 有效性信息和序列号
  • 证书颁发机构的签名

SSL 证书具有临时有效性(通常最多 90 天),因此必须定期更新以保证您网站的持续可信度。 这些证书是所有处理个人数据和敏感财务信息的网站的强制性要求。

谷歌为 SSL 安全网站提供更好的 SERP 排名的举措也表明了安装 SSL 证书的重要性。 自 2014 年以来,SSL 证书已成为所有网站的必备组件。 下图显示了通过 SSL 认证的网站加载的页面百分比的大幅增长。

谷歌透明度报告

WordPress 的联合创始人 Matt Mullenweg 曾表示:“我们只会推广在其帐户中默认提供 SSL 证书的托管合作伙伴。 ” 此外,您还可以看到特别提到对托管要求的 HTTPS 支持。

SSL 证书如何工作?

SSL 协议是一个四层结构(SSL 记录、握手、更改密码规范和警报协议),可安全地加密服务器和浏览器之间的数据。 这些层允许使用用于加密/解密的密钥以及基于使用公钥和私钥的身份验证模型。

SSL 证书工作

在此模型中,公钥用于加密数据,而私钥用于解密。 这发生在 SSL 协议的握手层,在此交换用于加密和解密数据的非对称加密密钥。

SSL 证书:验证和类型

SSL 证书通常分为三个验证级别:

1. 域验证(DV)

证书颁发机构验证申请人使用特定域名的权利。 不检查域背后公司的身份。 当用户单击安全站点挂锁时会显示该信息。 您可以猜到,这是一个非常基本的 SSL 验证级别。

2. 组织验证 (OV)

证书颁发机构检查申请人使用特定域名的权利以及该域名背后组织的有效性。

组织验证 (OV) 更复杂,但它可以保证域的合法性并识别公司的所有者,从而为访问者提供更多信心。 它通常被电子商务企业和企业网站使用。

3. 扩展验证 (EV)

认证机构验证申请人使用特定域名的权利,并对组织进行详细检查。 CA/浏览器论坛的指南中广泛定义了使用扩展验证 (EV) 颁发证书的过程。

扩展验证 (EV) 是 SSL 证书验证的最高级别,需要出示文件和法律许可来验证公司的存在。 使用 EV,用户可以在浏览器的地址栏中看到安全的站点封条。

除了验证之外,SSL 证书还可用于多种应用程序配置:

1. 单域

如果您只想保护一个域,单域证书是您的最佳选择。 这些证书仅适用于顶级域(例如website.com) 。 这种类型的 SSL 证书适用于所有验证级别。

2. 多域

这种类型的证书使用单个 SSL 证书认证多个域(例如, website.comwebsite.com.uk) 。 请注意,根据证书颁发机构的不同,受保护域的数量可能会有所不同。 多域 SSL 证书适用于除 EV 之外的所有验证级别。

3. 通配符

它们用于具有多个子域的单个域。 颁发通配符 SSL 证书的证书颁发机构有权限制受保护子域的数量。 这种类型的 SSL 证书适用于除 EV 之外的所有验证级别。

4. 多域通配符

这些证书是多域证书和通配符证书的组合。 您可以使用这些证书来保护多个顶级域以及子域。 同样,限制可能因证书颁发机构而异。 这种类型的 SSL 证书可用于除 EV 之外的所有验证级别。

使用 WordPress SSL 证书的优势

至此,你已经能够知道SSL证书的重要性了。 现在是时候了解 SSL 证书的优势了。

  • 信任:通过 SSL 证书,访问者知道他们与网站的连接是加密的,从而提高信任度和可信度。
  • 合法性:因为很明显,所有活动都发生在已知且受到适当保护的网站上。
  • 安全性:访问者知道信息是加密的,因此数据将是安全的,不会受到任何类型的第三方未经授权的访问或攻击。
  • 排名: Google 偏爱具有 SSL 且地址中包含 HTTPS 的网页。

特别推荐企业使用 SSL 证书,尤其是处理用户个人数据的在线商店。

让我们加密:免费的 SSL/TLS 证书

Let's Encrypt 是一个免费的自动化证书颁发机构 (CA),它免费提供有效期为 90 天的域验证 (DV) 证书。 此服务由 Internet 安全研究组 (ISRG) 提供。 拥有域名和托管服务的任何人都可以免费将 Let's Encrypt SSL 证书添加到 WordPress。

证书的激活时间还可能取决于 Let's Encrypt 资源的可用性以及证书颁发机构本身的一系列限制。 这些限制包括:

  • 每个注册域的证书(每周 50 个)
  • 每个证书的名称(最多 100 个)
  • 独特的子域(每周最多 5,000 个)
  • 重复证书(每周 5 个)

要查看这些限制的详细信息,请参阅 Let's Encrypt Rate Limits。 从现在开始,我还将使用 Let's Encrypt SSL 证书来演示实用的想法。

在进入下一部分之前,我建议备份您的 WordPress 网站,以便您可以随时恢复它,以防万一出现问题。 您可以通过两种方式进行备份:通过 WordPress 备份插件或服务器端备份。 或者,您可以创建 WordPress 登台环境或克隆整个网站进行测试。

在 WordPress 上安装免费 SSL 证书

我在本文中使用 Cloudways 平台,并假设您已经注册了一个帐户,启动了一个带有 WordPress 应用程序的服务器,并将其指向您的域。 如果没有,您可以通过以下方式使用 WordPress 启动服务器。

在下一步中,从左上角的菜单栏中转到应用程序。 您可以看到您的 WordPress 应用程序安装在您的服务器上。 单击您的应用程序以进入应用程序管理仪表板。

wordpress 应用程序

在您的站点上添加单域 WordPress SSL

在安装 WordPress SSL 之前,请确保您的域具有完整的 DNS 传播功能。 否则,您将无法安装 SSL 证书。

在下一步中,输入您的域名和用于创建 Cloudways 帐户的相同电子邮件地址。 现在,单击安装证书

安装ssl证书

在您的站点上添加多域 WordPress SSL

要在多个域上安装 Let's Encrypt WordPress SSL 证书,请单击添加域并输入与您的 WordPress 网站关联的域名。 完成后,单击安装证书

添加域选项

为子域添加通配符 SSL 证书

您只需要标记应用通配符复选框。 向您提供需要添加到域注册商的 CNAME 记录需要一些时间。

应用通配符选项

登录您的域名注册商并添加包含类似信息的 CNAME 记录:

  • 类型: CNAME
  • 主持人: _acme-challenge
  • 值: [您的网站网址]

完成后,返回SSL 证书部分并单击验证 DNS 。 它将验证设置并相应地通知您。 在下一步中,单击安装证书以在您的站点上安装 WordPress SSL。

Let's Encrypt WordPress SSL 证书的自动更新

如果您将Auto-Renewal选项设置为Enable ,Cloudways Platform 会自动处理续订过程。 您也可以随时通过单击“立即更新”按钮来更新它。

让我们加密 SSL 证书更新

或者,您可以使用 SSL 监控服务来确保所有 SSL 证书都有效并且您的客户端没有收到安全警告。

安装付费 WordPress SSL 证书

对于付费 SSL 证书,您首先需要在 WordPress 应用程序上启用证书签名请求 (CSR)。

转到SSL 证书部分,从下拉菜单中选择“我没有证书”,然后单击“创建 CSR”

创建 csr 选项

如果您想在多个域上使用单个 WordPress SSL 证书,请选中显示 SAN 的复选框并在表单中添加域名。

创建 csr 表单

提交表单后,将生成 CSR。 在下一步中,单击下载 CSR按钮以下载 CSR 文件。

下载 csr 选项

将下载的 CSR 文件提交给您的 WordPress SSL 证书提供商,以根据您的要求生成 SSL 证书。

SSL 证书提供商会为您提供两个文件: [yourdomain].crt (证书代码)和[yourdomain].ca (链文件)。 单击安装证书,您将看到一个要求证书代码CA 链的弹出窗口。 在各自的字段中提交此信息。

安装证书选项

提交此信息后,单击提交,您就可以开始了。 SSL 现在应该适用于您的 WordPress 网站。

什么是 HSTS,为什么要使用它?

HTTP 严格传输安全 (HSTS) 是一个 Web 服务器指令,它告诉 Web 浏览器和用户代理如何处理与您网站的连接。 它在最开始发送一个带有指令的响应头。

有时 HTTPS 是不够的,因为攻击者仍然会找到通过 http:// 访问您的网站的方法。 HSTS 强制浏览器使用 HTTPS(如果可用)。 为 WordPress SSL 证书配置 HSTS 非常简单。 如果您在 Apache 服务器上托管,请将以下几行添加到 .htaccess 文件中。

 # 使用 HSTS 强制客户端只使用安全连接

标头始终设置 Strict-Transport-Security "max-age=300; includeSubDomains; preload"

在将 HSTS 添加到您的 WordPress 网站之前,请确保您阅读以下先决条件:

  • 该网站必须安装有效的 SSL 证书。
  • 使用 301 永久重定向将所有 HTTP 链接重定向到 HTTPS。
  • 确保所有子域都包含在您的 SSL 证书中。 (考虑通配符证书)

Cloudflare 上的 WordPress SSL 证书(可选)

如果您以一种或另一种方式使用 Cloudflare,则需要采取一些额外的步骤。 首先,禁用 Cloudflare,否则配置过程可能会失败。

第1步

登录到您的 Cloudflare 仪表板,然后在 DNS 选项卡下,使用切换开关禁用www[yourdomain].com选项。 如果为灰色,则表示该服务已禁用。

Cloudflare 上的 SSL

第2步

现在,转到Cloudways Platform → Server ManagementSettings and Packages部分,在Advanced选项卡中,在WAF Module 下选择Cloudflare ,然后单击Save Changes按钮。

waf 模块选项

第 3 步

返回 Cloudflare 仪表板并启用您在步骤 1 中禁用的选项。 单击顶部的SSL/TLS选项卡并将 SSL/TLS 加密模式设置为Flexible 。 Cloudflare 最多可能需要 24 小时才能激活证书。 但是,如果您之前已经使用过同一个域,它将立即被激活。

cloudflare ssl tls 设置

证书激活后,将其切换为Full (strict)

清除网站、托管和浏览器缓存

现在,是时候检查是否安装了免费的 WordPress SSL 证书。 在继续之前,通过导航到Cloudways Platform → Server Management → Manage Services清除网站缓存以及服务器端缓存(如 Varnish)。

管理服务选项

检查 SSL 证书是否正常工作

我假设您已经为您的网站安装了 Let's Encrypt WordPress SSL 证书并正确配置了所有内容。 现在,是时候测试 SSL 证书了。 访问您的网站并检查显示的图标。

HTTP 协议的类型

如果您看到第二个图标,则表示 SSL 证书工作正常。 如果您看到第三个图标,则表示该网站正在使用 SSL 证书,但页面上的某些元素未使用 HTTPS,这种现象称为混合内容。

SSL Labs 提供了一个出色的 SSL 检查工具,您只需在其中输入您的域名,它就会分析并给出如下所示的报告。

ssl 实验室评级

许多 Clo​​udflare 用户在尝试将免费的 Let's Encrypt WordPress SSL 证书导入 Cloudflare 免费帐户上的域时报告问题。 上面的设置应该可以工作,但如果不行,请尝试以下步骤:

  1. 登录 Cloudflare 并选择要使用的域。
  2. 从顶部菜单选项中选择SSL/TLS
  3. 将 SSL/TLS 加密模式更改为灵活
  4. 将始终使用 HTTPS 设置为开启
  5. 在 HSTS 部分下,启用 HSTS
    • 将 Max-Age 设置为3 个月
    • 包括子域:关闭(根据需要更改 - 阅读上文)
    • 预加载:关闭
  6. 将最低 TLS 版本设置为TLS 1.2
  7. 机会加密:开启
  8. 设置 TLS 1.3:
  9. 自动 HTTPS 重写:开启(启用重定向)
  10. 禁用 Universal SSL (再次阅读上文)。 通过这样做,您将不再使用 Cloudflare SSL 证书,而仅使用您的服务器提供的证书。

上述过程由来自Hosting Canada – Web Hosting Reviews 的Gary Stevens提供。

将 URL 从 HTTP 更改为 HTTPS

转到您的WordPress 仪表板 → 设置 → 常规WordPress 地址 (URL)站点地址 (URL) 之前 →输入 https 而不是 http → 并单击页面底部的保存更改。 这会将所有内部 URL 替换为https://

wordpress 常规设置

为 WordPress 登录页面强制 SSL

通过更改 WordPress 仪表板中的 URL,所有网站 URL 也应更改。 如果没有,您可能希望通过在 wp-config.php 文件中配置 SSL 来强制 WordPress 登录区域使用 SSL。

在 wp-config.php 文件中,在“仅此而已,停止编辑!

 定义('FORCE_SSL_ADMIN',真);

上面这行将强制 WordPress 登录页面使用 SSL(URL 通常为:wp-admin/wp-login.php)

通过 .htaccess 文件将 HTTP 重定向到 HTTPS

如果有人使用 HTTP 访问您的网站,则服务器不会被迫通过 HTTPS 提供服务。 在下一步中,我将向 .htaccess 文件添加一条规则,用于将所有流量从 HTTP 重定向到 HTTPS。 在进行任何更改之前,请将 .htaccess 文件备份到异地位置,因为单个点可能会影响您的 WordPress。

登录到您的 WordPress 主机 → 导航到 WordPress 根目录 → 使用任何编辑器打开 .htaccess 文件 → 将以下行粘贴到 .htaccess 文件的开头。

 重写引擎开启

RewriteCond %{http:X-Forwarded-Proto} !HTTPS

重写规则 ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

.htaccess 文件应该类似于:

 重写引擎开启

RewriteCond %{http:X-Forwarded-Proto} !HTTPS

重写规则 ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

# 开始 WordPress

<IfModule mod_rewrite.c>

重写引擎开启

重写基数 /

重写规则 ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

重写规则。 /index.php [L]

</IfModule>

# 结束 WordPress

将 CDN URL 更新为 HTTPS

如果您使用的是 WordPress CDN,请将 WordPress URL 更新为 https://(就像我在上面的 Cloudflare 部分中介绍的那样)。

混合内容警告

访问您的网站并确认所有内部链接都已移至 https://。 如果您仍然可以在某些网页上看到信息图标,则表明正在通过 HTTP 提供一个或多个 URL。 您需要识别这些 URL。

识别混合内容警告 URL

为了演示混合内容场景,我向帖子添加了一个图像,并通过转到帖子的文本编辑器将 URL 更改为 HTTP。 接下来,我访问了帖子并打开了开发者控制台(检查元素)。 单击错误图标并在搜索栏中输入“mix”。 这将显示所有通过 HTTP 提供服务且需要更新为 HTTPS 的 URL。

检查非 SSL 网站 URL

就我而言,它只是图像 URL。 但是,您的网站上可能会使用来自没有 WordPress SSL 证书的域的一些外部图像、样式表或脚本。 您需要手动将它们移动到 https://。 或者,您可以删除它们或将这些文件移动到您的服务器。

JitBit 的 Non-SSL URLs 是一个优秀的在线工具,可以抓取和检查网站上的非 SSL 链接。 我扫描了我的测试网站,下面的屏幕截图显示了通过 HTTP 提供的 URL。

检查非 SSL URL

有多种方法可以修复混合内容警告问题。 让我们讨论其中的一些:

方法 1:使用 Velvet Blues 更新 URL 插件

有一个有用的插件 Velvet Blues Update URLs 可以检查所有 URL 并相应地更新它们。 安装插件后,转到WordPress 仪表板 → 工具 → 更新 URL → 如下配置插件 → 然后单击立即更新 URL

天鹅绒蓝调更新网址

方法 2:使用更好的搜索替换插件

Better Search Replace 是另一个很棒的插件,可以将数据库中的 HTTP URL 替换为 HTTPS。 安装插件后,转到WordPress仪表板→工具更好的搜索替换→如下配置插件→然后单击运行搜索/替换

更好的搜索替换

方法 3:使用真正简单的 SSL 插件

配置免费 HTTPS 的最简单方法是使用真正简单的 SSL 插件。 安装插件后,转到WordPress 仪表板 → 设置 → SSL 。 如果一切正常,您将看到如下所示的内容,如果配置有误,您将看到一个红色叉号以及修复该警告的说明。

非常简单的ssl

真正简单的 SSL 会在加载页面时替换 URL。 这可能会对性能产生轻微影响,如果您使用的是 WordPress 缓存插件,那么影响只会出现在第一次加载上。

为 Google Search Console 配置 HTTPS

要在 Search Console 中跟踪 HTTPS 链接,请转至Google Analytics Dashboard → 管理→ 选择所需的属性并单击属性设置→ 将默认 URLhttp://更改为https:// →并单击页面末尾的保存

分析属性设置

您已完成如何为 WordPress 获取免费 SSL 证书。 请不要忘记将所有预定义的 URL 从 HTTP 更改为 HTTPS,因为它们将通过 Google Analytics 进行跟踪。

包起来!

如果您已经到达这里,那么您现在可以想象 WordPress SSL 的重要性以及如何在您的 WordPress 中安装它。 如果您不使用它,您将失去潜在客户,访问者会因为感到不安全而放弃您的网站,最重要的是,您将失去搜索引擎排名。

最后一个问题在谷歌的案例中尤为严重。 这负责惩罚没有 SSL 证书的页面。 更不用说打开网络钓鱼和数据盗窃之门的可能性了。 如果您有任何问题,请随时在下面的评论部分提问。