在 Lightsail 上使用 HTTPS 保护您的 WordPress 网站 - Amazon Lightsail

在 Lightsail 上使用 HTTPS 保护您的 WordPress 网站

启用 WordPress 网站的安全超文本传输协议(HTTPS),确保网站在发送和接收加密数据时的安全性。非安全网站的地址以 http 开头(如 http://example.com),而安全网站的地址以 https 开头(如 https://example.com)。即使您的网站主要是提供参考信心,仍建议您启用 HTTPS。这是因为如未启用 HTTPS,大多数 Web 浏览器会通知网站访问者您的网站是不安全的,并且您的网站将在搜索引擎结果中排名较低。

提示

Lightsail 提供引导式工作流程,可在您的 WordPress 实例上自动安装和配置 SSL/TLS Let's Encrypt 证书。我们强烈建议使用该工作流程,而不是按照本教程中的手动步骤操作。有关更多信息,请参阅启动并配置 WordPress 实例

本指南将介绍如何使用 Bitnami HTTPS 配置工具(bncert),以在 Amazon Lightsail 的由 Bitnami 认证的 WordPress 实例上启用 HTTPS。它允许您仅为进行请求时指定的域和子域请求证书。或者,也可以使用 Certbot 工具,为域请求证书和为子域请求通配符证书。通配符证书适用于任何子域,如果您不知道将使用哪个子域将流量引导到您的实例,这样做可以带来好处。但是,Certbot 不会像 bncert 工具那样自动续订证书。如果您使用 Certbot,则必须每 90 天手动续订一次证书。有关使用 Certbot 启用 HTTPS 的更多信息,请参阅教程:将 Let's Encrypt SSL 证书与 WordPress 实例结合使用

内容

步骤 1:了解流程

注意

在本部分中,您可了解此过程的简要概述。执行此过程的具体步骤包含在本指南的后续步骤中。

若要为您的 WordPress 网站启用 HTTPS,请连接到 Lightsail 实例,然后使用 bncert 工具从 Let's Encrypt 证书颁发机构请求 SSL/TLS 证书。当您请求证书时,您可以指定网站的主域(example.com) 和备用域(www.example.comblog.example.com 等),如果有的话。Let's Encrypt 通过要求您在域的 DNS 中创建 TXT 记录,或验证这些域是否已将流量引导到您发出请求的实例的公有 IP 地址,来验证您是否拥有这些域。

验证您的证书后,您可以配置您的 WordPress 网站,自动将访问者从 HTTP 重新导向到 HTTPS(http://example.com 重新导向到 https://example.com),以便强制访问者使用加密连接。您还可以将您的网站配置为从 www 子域名自动重新导向到顶级域(https://www.example.com 重新导向到 https://example.com),反之亦然(https://example.com 重新导向到 https://www.example.com)。也可以使用 bncert 工具执行这些重新导向操作。

Let's Encrypt 要求您每隔 90 天续订一次证书,以便在您的网站上维持 HTTPS。bncert工具会自动为您续订证书,这样您就可以花更多时间关注您的网站。

管理工具的限制

bncert 工具有以下限制:

  • 所有由 Bitnami 认证的 WordPress 实例在创建时没有预安装此工具。在 Lightsail 上创建的 WordPress 实例过一段时间后将要求您手动安装 bncert 工具。本指南的步骤 4 向您介绍如何确认该工具已安装在您的实例上,以及在没有安装的情况下如何安装。

  • 您可以仅为进行请求时指定的域和子域请求证书。这与 Certbot 工具不同,它可以为域请求证书和为子域请求通配符证书。通配符证书适用于任何子域,如果您不知道将使用哪个子域将流量引导到您的实例,这样做可以带来好处。但是,Certbot 不会像 bncert 工具那样自动续订证书。如果您使用 Certbot,则必须每 90 天手动续订一次证书。有关使用 Certbot 启用 HTTPS 的更多信息,请参阅教程:将 Let's Encrypt SSL 证书与 Amazon Lightsail 中的 WordPress 实例结合使用

步骤 2:完成先决条件

请完成以下先决条件(如果尚未完成):

  • 在 Lightsail 中创建 WordPress 实例,然后在您的实例上配置您的网站。有关更多信息,请参阅 Amazon Lightsail 中的基于 Linux/Unix 的实例入门

  • 将静态 IP 附加到实例。如果您停止和启动实例,则实例的公有 IP 地址会出现更改。如果您停止和启动实例,静态 IP 不会更改。有关更多信息,请参阅创建静态 IP 并将其附加到 Amazon Lightsail 中的实例

  • 完成配置后创建 WordPress 实例的快照,或启用自动快照。快照可用作备份,如果原始实例出现问题,您便可以从中创建另一个实例。有关更多信息,请参阅创建 Linux 或 Unix 实例的快照在 Amazon Lightsail 中启用或禁用实例或磁盘的自动快照

  • 将 DNS 记录添加到域的 DNS 中,其将顶点域 (example.com) 及其 www 子域 (www.example.com)的流量引导到 Lightsail 中的 WordPress 实例的公有 IP 地址上。您可以在域的当前 DNS 托管提供商处完成这些操作。或者,如果您将域的 DNS 管理工作转移给 Lightsail,则可以使用 Lightsail 中的 DNS 区域完成这些操作。要了解更多信息,请参阅 DNS

    重要

    将 DNS 记录添加到要用于 WordPress 网站的所有域的 DNS。所有这些域应该将流量路由到 WordPress 网站的公有 IP 地址。bncert bncert 工具将仅为当前将流量引导到 WordPress 实例的公有 IP 地址的域颁发证书。

步骤 3:连接到您的实例

完成以下步骤,以使用 Lightsail 控制台中基于浏览器的 SSH 客户端连接到您的实例。

  1. 登录 Lightsail 控制台

  2. 在左侧导航窗口中,选择 WordPress 实例的 SSH 快速连接图标。

    Lightsail 主页上的 SSH 快速连接图标。

    将打开基于浏览器的 SSH 客户端终端窗口。如果您看到 Bitnami 徽标(如以下示例所示),则您通过 SSH 成功连接到您的实例。

    Lightsail 控制台中基于浏览器的 SSH 客户端。

步骤 4:确认已在实例上安装了 bncert 工具

完成以下步骤以确保 Bitnami HTTPS 配置工具 (bncert) 已安装到实例上。所有由 Bitnami 认证的 WordPress 实例在创建时没有预安装此工具。在 Lightsail 上创建的 WordPress 实例过一段时间后将要求您手动安装 bncert 工具。此过程包括在未安装工具时安装该工具的步骤。

  1. 要运行 bncert 工具,请输入以下命令。

    sudo /opt/bitnami/bncert-tool
    • 如果您在响应中看到 command not found(如以下示例所示),则 bncert 工具未安装到实例上。继续执行此过程的后续步骤以在实例上安装 bncert 工具。

      重要

      bncert 工具只能用于由 Bitnami 认证的 WordPress 实例。或者,您可以使用 Certbot 工具在您的 WordPress 实例上启用 HTTPS。有关更多信息,请参阅教程:将 Let's Encrypt SSL 证书与 WordPress 实例结合使用

      确认未安装 Bncert 工具的消息
    • 如果您在响应中看到 Welcome to the Bitnami HTTPS configuration tool(如以下示例所示),则 bncert 工具已安装到实例上。继续执行本指南的步骤 5:在 WordPress 实例上启用 HTTPS 部分。

      确认已安装 Bncert 工具的消息
  2. 输入以下命令以将 bncert 运行文件下载到您的实例中。

    wget -O bncert-linux-x64.run https://downloads.bitnami.com/files/bncert/latest/bncert-linux-x64.run
  3. 输入以下命令以在您的实例上创建 bncert 运行文件的目录。

    sudo mkdir /opt/bitnami/bncert
  4. 输入以下命令以将下载的 bncert 运行文件移动到您创建的新目录。

    sudo mv bncert-linux-x64.run /opt/bitnami/bncert/
  5. 输入以下命令以创建可作为程序执行的 bncert 运行文件。

    sudo chmod +x /opt/bitnami/bncert/bncert-linux-x64.run
  6. 输入以下命令以创建当您输入 sudo /opt/bitnami/bncert-tool 命令时运行 bncert 工具的符号链接。

    sudo ln -s /opt/bitnami/bncert/bncert-linux-x64.run /opt/bitnami/bncert-tool

    您现在已完成在实例上安装 bncert 工具的步骤。继续执行本指南的步骤 5:在 WordPress 实例上启用 HTTPS 部分。

步骤 5:在 WordPress 实例上启用 HTTPS

完成以下过程,在您确认 bncert 工具已安装到实例上之后,在 WordPress 实例上启用 HTTPS。

  1. 要运行 bncert 工具,请输入以下命令。

    sudo /opt/bitnami/bncert-tool

    您应看到类似于以下示例的消息。

    运行 bncert 工具

    如果 bncert 工具已在您的实例上安装了一段时间,那么您可能会看到一条消息,指示该工具的更新版本可供使用。按以下示例中所示选择下载它,然后再次输入 sudo /opt/bitnami/bncert-tool 命令来运行 bncert 工具。

    指示新版本 bncert 工具可用的消息
  2. 输入用空格分隔的主域名和备用域名,如以下示例所示。

    如果您的域未配置为将流量路由到实例的公有 IP 地址,则 bncert 工具将要求您在继续之前进行该配置。您的域必须将流量路由到使用 bncert 工具以在实例上启用 HTTPS 的实例的公有 IP 地址。这将确认您拥有该域,并能用于进行证书的验证。

    输入主域名和备用域名
  3. bncert 工具会询问您希望如何配置网站的重新导向。以下是可用的选项:

    • 启用 HTTP 重新导向到 HTTPS - 指定是否将浏览网站 HTTP 版本(即 http:/example.com)的用户自动重新导向到 HTTPS 版本(即 https://example.com)。我们建议启用此选项,因为它会强制所有访问者使用加密连接。输入 Y 然后按 Enter 以启用它。

    • 启用非 www 重新导向到 www - 指定是否将浏览顶级域(即 https://example.com)的用户自动重新导向到域的 www 子域(即 https://www.example.com)。我们建议启用此选项。但如果您在搜索引擎工具(如 Google 站点管理员工具)中指定了顶级域作为首选网站地址,或者顶级域直接指向您的 IP 且 www 子域通过别名记录引用您的顶级域,则您可能希望禁用它并启用其他选项(启用 www 重新导向到非 www)。输入 Y 然后按 Enter 以启用它。

    • 启用 www 到非 www 重新导向 - 指定是否将浏览域的 www 子域(即 https://www.example.com)的用户自动重新导向到顶级域(即 https://example.com)。如果您启用了非 www 重新导向到 www,建议禁用此选项。输入 N 然后按 Enter 以禁用它。

    您的选择应类似于以下示例:

    网站重新导向选项
  4. 将列出要进行的更改。输入 Y 然后按 Enter 以确认并继续。

    确认更改
  5. 输入要与 Let's Encrypt 证书关联的电子邮件地址,然后按 Enter(确定键)

    将您的电子邮件地址与 Let's Encrypt 证书关联
  6. 查看 Let's Encrypt 的加密用户协议 输入 Y 然后按 Enter 接受协议并继续。

    查看 Let's Encrypt 用户协议

    将执行这些操作以在您的实例上启用 HTTPS,包括请求证书和配置您指定的重新导向。

    正在执行操作

    您的证书已成功颁发和验证,如果您看到类似于以下示例的消息,则表示在实例上成功配置了重新导向。

    操作成功完成

    bncert 工具将在证书过期前每 80 天执行一次自动续订。如果您希望将其他域和子域用于实例,并且希望为这些域启用 HTTPS,请重复上述步骤。

    您现在已完成在您的 WordPress 实例上启用 HTTPS。继续执行本指南的步骤 6:测试您的网站是否使用 HTTPS 部分。

步骤 6:测试您的网站是否使用 HTTPS

在 WordPress 实例上启用 HTTPS 后,您应该通过浏览到您在使用 bncert 工具时指定的所有域来确认您的网站是否使用 HTTPS。当您访问每个域时,您应该看到它们在使用安全连接,如以下示例所示。

注意

您可能需要刷新并清除浏览器的缓存才能看到更改。

安全网站确认

您可能还会发现非 www 地址重新导向到域的 www 子域,反之亦然,具体取决于您在运行 bncert 工具时选择的选项。