

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Lightsail 上使用 HTTPS 保护你的 WordPress 网站
<a name="amazon-lightsail-enabling-https-on-wordpress"></a>

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

**提示**  
Lightsail 提供指导式工作流程，可在您的实例上自动安装和配置 L SSL/TLS et's Encrypt 证书。 WordPress 我们强烈建议使用该工作流程，而不是按照本教程中的手动步骤操作。有关更多信息，请参阅[启动和配置实 WordPress 例](amazon-lightsail-tutorial-launching-and-configuring-wordpress.md)。

本指南向您展示如何使用 Bitnami HTTPS 配置工具 (`bncert`) 在 WordPress Amazon Lightsail 上的 *Bitnami 认证实例*上启用 HTTPS。它允许您仅为进行请求时指定的域和子域请求证书。或者，也可以使用 Certbot 工具，为域请求证书和为子域请求通配符证书。通配符证书适用于*任何*子域，如果您不知道将使用哪个子域将流量引导到您的实例，这样做可以带来好处。但是，Certbot 不会像 `bncert` 工具那样自动续订证书。如果您使用 Certbot，则必须每 90 天手动续订一次证书。有关使用 Certbot 启用 HTTPS 的更多信息，请参阅[教程：在您的 WordPress 实例中使用让我们加密 SSL 证书](amazon-lightsail-using-lets-encrypt-certificates-with-wordpress.md)。

**内容**
+ [步骤 1：了解流程](#https-process-wordpress)
+ [步骤 2：完成先决条件](#https-prerequisites-wordpress)
+ [步骤 3：连接到您的实例](#https-wordpress-connect-to-instance)
+ [步骤 4：确认已在实例上安装了 bncert 工具](#https-wordpress-bncert-install)
+ [步骤 5：在您的 WordPress 实例上启用 HTTPS](#https-wordpress-enable)
+ [步骤 6：测试您的网站是否使用 HTTPS](#test-https-on-your-website)

## 步骤 1：了解流程
<a name="https-process-wordpress"></a>

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

要为您的 WordPress 网站启用 HTTPS，请使用 SSH 连接到您的 Lightsail 实例，然后使用该`bncert`工具向 Let ['s Encrypt SSL/TLS 证书颁发机构申请](https://letsencrypt.org/about/)证书。当您请求证书时，您可以指定网站的主域（`example.com`) 和备用域（`www.example.com`、`blog.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` 工具有以下限制：
+ 并非所有 Certified *by Bitnami* WordPress 实例在创建时都已预装该实例。 WordPress 不久前在 Lightsail 上创建的实例需要您手动安装该工具。`bncert`本指南的步骤 4 向您介绍如何确认该工具已安装在您的实例上，以及在没有安装的情况下如何安装。
+ 您可以仅为进行请求时指定的域和子域请求证书。这与 Certbot 工具不同，它可以为域请求证书和为子域请求通配符证书。通配符证书适用于*任何*子域，如果您不知道将使用哪个子域将流量引导到您的实例，这样做可以带来好处。但是，Certbot 不会像 `bncert` 工具那样自动续订证书。如果您使用 Certbot，则必须每 90 天手动续订一次证书。有关使用 Certbot 启用 HTTPS 的更多信息，请参阅[教程：在 Amazon Lightsail 中的 WordPress 实例中使用让我们对 SSL 证书进行加密](amazon-lightsail-using-lets-encrypt-certificates-with-wordpress.md)。

## 步骤 2：完成先决条件
<a name="https-prerequisites-wordpress"></a>

请完成以下先决条件（如果尚未完成）：
+ 在 Lightsail 中创建实例，并在您的 WordPress 实例上配置您的网站。有关更多信息，请参阅 Amazon Light [sail 中基于 Linux/UNIX 的实例入门](getting-started-with-amazon-lightsail.md)。
+ 将静态 IP 附加到实例。如果您停止和启动实例，则实例的公有 IP 地址会出现更改。如果您停止和启动实例，静态 IP 不会更改。有关更多信息，请参阅[创建静态 IP 并将其附加到 Amazon Lightsail 中的实例](lightsail-create-static-ip.md)。
+ 配置完 WordPress 实例后，为其创建快照，或者启用自动快照。快照可用作备份，如果原始实例出现问题，您便可以从中创建另一个实例。有关更多信息，请参阅[创建 Linux 或 Unix 实例的快照或在](lightsail-how-to-create-a-snapshot-of-your-instance.md) [Amazon Lightsail 中为实例或磁盘启用或禁用自动快照](amazon-lightsail-configuring-automatic-snapshots.md)。
+ 将 DNS 记录添加到您的域名的 DNS 中，从而将您的域名顶点 () 及其`www`子域名 (`example.com`) 的流量引导到您在 Lightsail 中 WordPress 实例的公有 IP 地址。`www.example.com`您可以在域的当前 DNS 托管提供商处完成这些操作。或者，如果您将域名 DNS 的管理权转移到 Lightsail，则可以使用 Lightsail 中的 DNS 区域来完成这些操作。要了解更多信息，请参阅 [DNS](understanding-dns-in-amazon-lightsail.md)。
**重要**  
将 DNS 记录添加到您要用于 WordPress网站的所有域名的 DNS 中。所有这些域名都应将流量路由到您 WordPress 网站的公共 IP 地址。该`bncert`工具将仅为当前将流量定向到您的 WordPress实例的公有 IP 地址的域名颁发证书。

## 步骤 3：连接到您的实例
<a name="https-wordpress-connect-to-instance"></a>

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

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

1. 在左侧导航窗格中，为您的 WordPress实例选择 SSH 快速连接图标。  
![\[在 Lightsail 主页上使用 SSH 快速连接。\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-wordpress-ssh-quick-connect.png)

   将打开基于浏览器的 SSH 客户端终端窗口。如果您看到 Bitnami 徽标（如以下示例所示），则您通过 SSH 成功连接到您的实例。  
![\[Lightsail 控制台中基于浏览器的 SSH 客户端窗口。\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-ssh-session-bncert.png)

## 步骤 4：确认已在实例上安装了 bncert 工具
<a name="https-wordpress-bncert-install"></a>

完成以下步骤以确保 Bitnami HTTPS 配置工具 (`bncert`) 已安装到实例上。并非所有 Certified *by Bitnami* WordPress 实例在创建时都已预装该实例。 WordPress 不久前在 Lightsail 上创建的实例需要您手动安装该工具。`bncert`此过程包括在未安装工具时安装该工具的步骤。



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

   ```
   sudo /opt/bitnami/bncert-tool
   ```
   + 如果您在响应中看到 `command not found`（如以下示例所示），则 `bncert` 工具未安装到实例上。继续执行此过程的后续步骤以在实例上安装 `bncert` 工具。
**重要**  
该`bncert`工具只能用于通过 *Bitnami 认证的 WordPress *实例。或者，您可以使用 Certbot 工具在您的实例上启用 HTTPS。 WordPress 有关更多信息，请参阅[教程：对您的 WordPress实例使用 “让我们加密 SSL 证书](amazon-lightsail-using-lets-encrypt-certificates-with-wordpress.md)”。  
![\[确认未安装 Bncert 工具的消息\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/run-bncert-tool-fail.png)
   + 如果您在响应中看到 `Welcome to the Bitnami HTTPS configuration tool`（如以下示例所示），则 `bncert` 工具已安装到实例上。继续本指南的[步骤 5：在您的 WordPress 实例上启用 HTTPS](#https-wordpress-enable) 部分。  
![\[确认已安装 Bncert 工具的消息\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/run-bncert-tool-success.png)

1. 输入以下命令以将 `bncert` 运行文件下载到您的实例中。

   ```
   wget -O bncert-linux-x64.run https://downloads.bitnami.com/files/bncert/latest/bncert-linux-x64.run
   ```

1. 输入以下命令以在您的实例上创建 `bncert` 运行文件的目录。

   ```
   sudo mkdir /opt/bitnami/bncert
   ```

1. 输入以下命令以将下载的 `bncert` 运行文件移动到您创建的新目录。

   ```
   sudo mv bncert-linux-x64.run /opt/bitnami/bncert/
   ```

1. 输入以下命令以创建可作为程序执行的 `bncert` 运行文件。

   ```
   sudo chmod +x /opt/bitnami/bncert/bncert-linux-x64.run
   ```

1. 输入以下命令以创建当您输入 `sudo /opt/bitnami/bncert-tool` 命令时运行 `bncert` 工具的符号链接。

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

   您现在已完成在实例上安装 `bncert` 工具的步骤。继续本指南的[步骤 5：在您的 WordPress 实例上启用 HTTPS](#https-wordpress-enable) 部分。

## 步骤 5：在您的 WordPress 实例上启用 HTTPS
<a name="https-wordpress-enable"></a>

确认您的 WordPress 实例上安装了 HTTPS 后，请完成以下步骤以在`bncert`您的实例上启用 HTTPS。

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

   ```
   sudo /opt/bitnami/bncert-tool
   ```

   您应看到类似于以下示例的消息。  
![\[运行 bncert 工具\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/run-bncert-tool-success.png)

   如果 `bncert` 工具已在您的实例上安装了一段时间，那么您可能会看到一条消息，指示该工具的更新版本可供使用。按以下示例中所示选择下载它，然后再次输入 `sudo /opt/bitnami/bncert-tool` 命令来运行 `bncert` 工具。  
![\[指示新版本 bncert 工具可用的消息\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/bncert-update-required.png)

1. 输入用空格分隔的主域名和备用域名，如以下示例所示。

   如果您的域未配置为将流量路由到实例的公有 IP 地址，则 `bncert` 工具将要求您在继续之前进行该配置。您的域必须将流量路由到使用 `bncert` 工具以在实例上启用 HTTPS 的实例的公有 IP 地址。这将确认您拥有该域，并能用于进行证书的验证。  
![\[输入主域名和备用域名\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/bncert-domain-names.png)

1. `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** 以禁用它。

   您的选择应类似于以下示例：  
![\[网站重新导向选项\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/bncert-enable-disable-redirection.png)

1. 将列出要进行的更改。输入 `Y` 然后按 **Enter** 以确认并继续。  
![\[确认更改\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/bncert-confirm-changes.png)

1. 输入要与 Let's Encrypt 证书关联的电子邮件地址，然后按 **Enter（确定键）**。  
![\[将您的电子邮件地址与 Let's Encrypt 证书关联\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/bncert-email-address.png)

1. 查看 Let's Encrypt 的加密用户协议 输入 `Y` 然后按 **Enter** 接受协议并继续。  
![\[查看 Let's Encrypt 用户协议\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/bncert-lets-ecrypt-agreement.png)

   将执行这些操作以在您的实例上启用 HTTPS，包括请求证书和配置您指定的重新导向。  
![\[正在执行操作\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/bncert-performing-actions.png)

   您的证书已成功颁发和验证，如果您看到类似于以下示例的消息，则表示在实例上成功配置了重新导向。  
![\[操作成功完成\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/bncert-success-conf.png)

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

   现在，您已完成在您的 WordPress 实例上启用 HTTPS。继续执行本指南的[步骤 6：测试您的网站是否使用 HTTPS](#test-https-on-your-website) 部分。

## 步骤 6：测试您的网站是否使用 HTTPS
<a name="test-https-on-your-website"></a>

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

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

![\[安全网站确认\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/bncert-secured-website.png)


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