

# 使用 SSL/TLS 保护与 RDS for PostgreSQL 的连接
<a name="PostgreSQL.Concepts.General.Security"></a>

RDS for PostgreSQL 支持对 PostgreSQL 数据库实例进行安全套接字层 (SSL) 加密。使用 SSL 可加密应用程序与 PostgreSQL 数据库实例之间的 PostgreSQL 连接。您还可强制至 PostgreSQL 数据库实例的所有连接使用 SSL。RDS for PostgreSQL 还支持传输层安全性 (TLS)，这是 SSL 的下一代协议。

要了解有关 Amazon RDS 和数据保护的更多信息，包括使用 SSL/TLS 加密连接，请参阅 [Amazon RDS 中的数据保护](DataDurability.md)。

**Topics**
+ [将 SSL 与 PostgreSQL 数据库实例结合使用](PostgreSQL.Concepts.General.SSL.md)
+ [更新应用程序以使用新的 SSL/TLS 证书连接到 PostgreSQL 数据库实例](ssl-certificate-rotation-postgresql.md)

# 将 SSL 与 PostgreSQL 数据库实例结合使用
<a name="PostgreSQL.Concepts.General.SSL"></a>

Amazon RDS 支持对 PostgreSQL 数据库实例进行安全套接字层 (SSL) 加密。使用 SSL 可加密应用程序与 PostgreSQL 数据库实例之间的 PostgreSQL 连接。默认情况下，RDS for PostgreSQL 使用并期望所有客户端使用 SSL/TLS 进行连接，但您也可以要求它这样做。RDS for PostgreSQL 支持传输层安全性协议（TLS）版本 1.1、1.2 和 1.3。

有关 SSL 支持和 PostgreSQL 数据库的一般信息，请参阅 PostgreSQL 文档中的 [SSL 支持](https://www.postgresql.org/docs/11/libpq-ssl.html)。有关通过 JDBC 使用 SSL 连接的信息，请参阅 PostgreSQL 文档中的[配置客户端](https://jdbc.postgresql.org/documentation/head/ssl-client.html)。

所有AWS区域均支持对 PostgreSQL 使用 SSL。在创建数据库实例时，Amazon RDS 会为 PostgreSQL 数据库实例创建一个 SSL 证书。如果启用 SSL 证书验证，SSL 证书会将数据库实例终端节点作为 SSL 证书的公用名 (CN) 包含在内以防止欺诈攻击。

**Topics**
+ [通过 SSL 连接到 PostgreSQL 数据库实例](#PostgreSQL.Concepts.General.SSL.Connecting)
+ [需要至 PostgreSQL 数据库实例的 SSL 连接](#PostgreSQL.Concepts.General.SSL.Requiring)
+ [确定 SSL 连接状态](#PostgreSQL.Concepts.General.SSL.Status)
+ [RDS for PostgreSQL 中的 SSL 密码套件](#PostgreSQL.Concepts.General.SSL.Ciphers)

## 通过 SSL 连接到 PostgreSQL 数据库实例
<a name="PostgreSQL.Concepts.General.SSL.Connecting"></a>

**通过 SSL 连接到 PostgreSQL 数据库实例**

1. 下载证书。

   有关下载证书的信息，请参阅 [使用 SSL/TLS 加密与数据库实例或集群的连接](UsingWithRDS.SSL.md)。

1. 通过 SSL 连接到您的 PostgreSQL 数据库实例。

   使用 SSL 连接时，客户端可以选择是否验证证书链。如果连接参数指定 `sslmode=verify-ca` 或 `sslmode=verify-full`，则客户端要求 RDS CA 证书位于其信任存储中或在连接 URL 中进行引用。此要求是为了验证签署您的数据库证书的证书链。

   当客户端（如 psql 或 JDBC）配置有 SSL 支持时，默认情况下，该客户端会首先尝试使用 SSL 连接到数据库。如果该客户端无法使用 SSL 进行连接，它将恢复为不使用 SSL 进行连接。基于 libpq 的客户端（例如 psql）和 JDBC 所使用的默认 `sslmode` 模式不同。基于 libpq 的客户端和 JDBC 客户端默认使用 `prefer`。

   使用 `sslrootcert` 参数引用证书，例如，`sslrootcert=rds-ssl-ca-cert.pem`。

以下是使用 `psql` 连接到 PostgreSQL 数据库实例的示例，该数据库实例使用 SSL 及证书验证。

```
$ psql "host=db-name.555555555555.ap-southeast-1.rds.amazonaws.com 
    port=5432 dbname=testDB user=testuser sslrootcert=rds-ca-rsa2048-g1.pem sslmode=verify-full"
```

## 需要至 PostgreSQL 数据库实例的 SSL 连接
<a name="PostgreSQL.Concepts.General.SSL.Requiring"></a>

您可以使用 `rds.force_ssl` 参数要求至 PostgreSQL 数据库实例的连接使用 SSL。对于 RDS for PostgreSQL 版本 15 及更高版本，`rds.force_ssl` 参数默认值为 1（开启）。对于所有其它 RDS for PostgreSQL 主要版本 14 及更早版本，此参数的默认值均为 0（关闭）。您可将 `rds.force_ssl` 参数设置为 1 (on) 以要求使用 SSL/TLS 连接到数据库集群。您可将 `rds.force_ssl` 参数设置为 1 (on) 以要求至数据库实例的 SSL 连接。

要更改此参数的值，您需要创建自定义数据库参数组。然后将自定义数据库参数组中的 `rds.force_ssl` 的值更改为 `1`，以启用此功能。如果您在创建 RDS for PostgreSQL 数据库实例之前准备了自定义数据库参数组，则可以在创建过程中选择它（而不是默认参数组）。如果您在 RDS for PostgreSQL 数据库实例已运行之后执行此操作，则需要重启该实例，以便您的实例使用自定义参数组。有关更多信息，请参阅 [Amazon RDS 的参数组](USER_WorkingWithParamGroups.md)。

当 `rds.force_ssl` 功能在数据库实例上处于活动状态时，不使用 SSL 的连接尝试将被拒绝，并显示以下消息：

```
$ psql -h db-name.555555555555.ap-southeast-1.rds.amazonaws.com port=5432 dbname=testDB user=testuser
psql: error: FATAL: no pg_hba.conf entry for host "w.x.y.z", user "testuser", database "testDB", SSL off
```

## 确定 SSL 连接状态
<a name="PostgreSQL.Concepts.General.SSL.Status"></a>

当您连接到数据库实例后，登录横幅中将显示连接的加密状态：

```
Password for user master: 
psql (10.3) 
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256) 
Type "help" for help.
postgres=>
```

也可加载 `sslinfo` 扩展，然后调用 `ssl_is_used()` 函数以判断是否在使用 SSL。如果连接使用的是 SSL，则此函数将返回 `t`；否则返回 `f`。

```
postgres=> CREATE EXTENSION sslinfo;
CREATE EXTENSION
postgres=> SELECT ssl_is_used();
ssl_is_used
---------
t
(1 row)
```

要获取更多详细信息，您可以使用以下查询从 `pg_settings` 中获取信息：

```
SELECT name as "Parameter name", setting as value, short_desc FROM pg_settings WHERE name LIKE '%ssl%';
             Parameter name             |                  value                  |                      short_desc
----------------------------------------+-----------------------------------------+-------------------------------------------------------
 ssl                                    | on                                      | Enables SSL connections.
 ssl_ca_file                            | /rdsdbdata/rds-metadata/ca-cert.pem     | Location of the SSL certificate authority file.
 ssl_cert_file                          | /rdsdbdata/rds-metadata/server-cert.pem | Location of the SSL server certificate file.
 ssl_ciphers                            | HIGH:!aNULL:!3DES                       | Sets the list of allowed SSL ciphers.
 ssl_crl_file                           |                                         | Location of the SSL certificate revocation list file.
 ssl_dh_params_file                     |                                         | Location of the SSL DH parameters file.
 ssl_ecdh_curve                         | prime256v1                              | Sets the curve to use for ECDH.
 ssl_key_file                           | /rdsdbdata/rds-metadata/server-key.pem  | Location of the SSL server private key file.
 ssl_library                            | OpenSSL                                 | Name of the SSL library.
 ssl_max_protocol_version               |                                         | Sets the maximum SSL/TLS protocol version to use.
 ssl_min_protocol_version               | TLSv1.2                                 | Sets the minimum SSL/TLS protocol version to use.
 ssl_passphrase_command                 |                                         | Command to obtain passphrases for SSL.
 ssl_passphrase_command_supports_reload | off                                     | Also use ssl_passphrase_command during server reload.
 ssl_prefer_server_ciphers              | on                                      | Give priority to server ciphersuite order.
(14 rows)
```

您还可以使用以下查询，按流程、客户端和应用程序收集有关 RDS for PostgreSQL 数据库实例 SSL 使用情况的所有信息：

```
SELECT datname as "Database name", usename as "User name", ssl, client_addr, application_name, backend_type
   FROM pg_stat_ssl
   JOIN pg_stat_activity
   ON pg_stat_ssl.pid = pg_stat_activity.pid
   ORDER BY ssl;
 Database name | User name | ssl |  client_addr   |    application_name    |         backend_type
---------------+-----------+-----+----------------+------------------------+------------------------------
               |           | f   |                |                        | autovacuum launcher
               | rdsadmin  | f   |                |                        | logical replication launcher
               |           | f   |                |                        | background writer
               |           | f   |                |                        | checkpointer
               |           | f   |                |                        | walwriter
 rdsadmin      | rdsadmin  | t   | 127.0.0.1      |                        | client backend
 rdsadmin      | rdsadmin  | t   | 127.0.0.1      | PostgreSQL JDBC Driver | client backend
 postgres      | postgres  | t   | 204.246.162.36 | psql                   | client backend
(8 rows)
```

要识别用于 SSL 连接的密码，可按如下方式进行查询：

```
postgres=> SELECT ssl_cipher();
ssl_cipher
--------------------
DHE-RSA-AES256-SHA
(1 row)
```

要了解有关 `sslmode` 选项的更多信息，请参阅 *PostgreSQL 文档*中的[数据库连接控制函数](https://www.postgresql.org/docs/11/libpq-connect.html#LIBPQ-CONNECT-SSLMODE)。

## RDS for PostgreSQL 中的 SSL 密码套件
<a name="PostgreSQL.Concepts.General.SSL.Ciphers"></a>

PostgreSQL 配置参数 [ssl\$1ciphers](https://www.postgresql.org/docs/current/runtime-config-connection.html#RUNTIME-CONFIG-CONNECTION-SSL) 指定在使用 TLS 1.2 及更低版本时，与数据库的 SSL 连接所支持的密码套件类别。

 在 RDS for PostgreSQL 16 及更高版本中，您可以修改 `ssl_ciphers` 参数，以使用列入许可列表的密码套件中的特定值。这是一个不要求重启数据库实例的动态参数。要查看列入许可列表的密码套件，请使用 Amazon RDS 控制台或以下 CLI AWS 命令：

```
aws rds describe-db-parameters --db-parameter-group-name <your-parameter-group> --region <region> --endpoint-url <endpoint-url> --output json | jq '.Parameters[] | select(.ParameterName == "ssl_ciphers")'
```

下表列出了支持自定义配置的版本的默认密码套件和许可的密码套件。


| PostgreSQL 引擎版本 | 默认 ssl\$1cipher 套件值 | 列入许可列表的自定义 ssl\$1cipher 套件值 | 
| --- | --- | --- | 
| 18 | HIGH:\$1aNULL:\$13DES |  `TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384` `TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256` `TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256` `TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384` `TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256`  | 
| 17 | HIGH:\$1aNULL:\$13DES |  `TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384` `TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256` `TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256` `TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384` `TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256`  | 
| 16 | HIGH:\$1aNULL:\$13DES |  `TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384` `TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256` `TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256` `TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384` `TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256`  | 
| 15 | HIGH:\$1aNULL:\$13DES | 不支持自定义 ssl\$1cipher | 
| 14 | HIGH:\$1aNULL:\$13DES | 不支持自定义 ssl\$1cipher | 
| 13 | HIGH:\$1aNULL:\$13DES | 不支持自定义 ssl\$1cipher | 
| 12 | HIGH:\$1aNULL:\$13DES | 不支持自定义 ssl\$1cipher | 
| 11.4 及更高的次要版本 | HIGH:MEDIUM:\$13DES:\$1aNULL:\$1RC4 | 不支持自定义 ssl\$1cipher | 
| 11.1、11.2 | HIGH:MEDIUM:\$13DES:\$1aNULL | 不支持自定义 ssl\$1cipher | 
| 10.9 及更高的次要版本 | HIGH:MEDIUM:\$13DES:\$1aNULL:\$1RC4 | 不支持自定义 ssl\$1cipher | 
| 10.7 及更低的次要版本 | HIGH:MEDIUM:\$13DES:\$1aNULL | 不支持自定义 ssl\$1cipher | 

要将所有实例连接配置为使用 `TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384` 密码套件，请修改参数组，如以下示例所示：

```
aws rds modify-db-parameter-group --db-parameter-group-name <your-parameter-group> --parameters "ParameterName='ssl_ciphers',ParameterValue='TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384',ApplyMethod=immediate"
```

此示例使用 ECDSA 密码，这要求您的实例使用具有椭圆曲线加密（ECC）的证书颁发机构来建立连接。有关 Amazon RDS 提供的证书颁发机构的信息，请参阅[证书颁发机构](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/singWithRDS.SSL.html#UsingWithRDS.SSL.RegionCertificateAuthorities)。

您可以通过[确定 SSL 连接状态](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.SSL.html#PostgreSQL.Concepts.General.SSL.Status)中所述的方法来验证所使用的密码。

根据上下文，密码可能有不同的名称：
+ 您可以在参数组中配置的列入许可列表的密码以其 IANA 名称来引用。
+ `sslinfo` 和 `psql` 登录横幅使用密码的 OpenSSL 名称来引用这些密码。

默认情况下，RDS for PostgreSQL 16 及更高版本中 `ssl_max_protocol_version` 的值为 TLS v1.3。您必须将此参数的值设置为 TLS v1.2，因为 TLS v1.3 不使用在 `ssl_ciphers` 参数中指定的密码配置。当您将该值设置为 TLS v1.2 时，连接将仅使用您在 `ssl_ciphers` 中定义的密码。

```
aws rds modify-db-parameter-group --db-parameter-group-name <your-parameter-group> --parameters "ParameterName='ssl_max_protocol_version',ParameterValue='TLSv1.2',ApplyMethod=immediate"
```

为确保数据库连接使用 SSL，请在参数组中将 `rds.force_ssl parameter` 设置为 1。有关参数和参数组的更多信息，请参阅 [Amazon RDS 的参数组](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html)。

# 更新应用程序以使用新的 SSL/TLS 证书连接到 PostgreSQL 数据库实例
<a name="ssl-certificate-rotation-postgresql"></a>

用于安全套接字层或传输层安全 (SSL/TLS) 的证书通常具有设定的生命周期。服务提供商更新其证书颁发机构 (CA) 证书时，客户端必须更新其应用程序才能使用新证书。在下文中，您可以了解有关如何确定客户端应用程序是否使用 SSL/TLS 连接到 Amazon RDS for PostgreSQL 数据库实例的信息。您还可以找到有关如何检查这些应用程序在连接时是否验证服务器证书的信息。

**注意**  
配置为在 SSL/TLS 连接之前验证服务器证书的客户端应用程序必须在客户端的信任存储中具有有效的 CA 证书。必要时更新客户端信任存储以获取新证书。

更新客户端应用程序信任存储中的 CA 证书后，可以在数据库实例上轮换这些证书。强烈建议在生产环境中实现这些过程之前，先在非生产环境中测试它们。

有关证书轮换的更多信息，请参阅[轮换 SSL/TLS 证书](UsingWithRDS.SSL-certificate-rotation.md)。有关下载证书的更多信息，请参阅[使用 SSL/TLS 加密与数据库实例或集群的连接](UsingWithRDS.SSL.md)。有关对 PostgreSQL 数据库实例使用 SSL/TLS 的信息，请参阅[将 SSL 与 PostgreSQL 数据库实例结合使用](PostgreSQL.Concepts.General.SSL.md)。

**Topics**
+ [确定是否有应用程序使用 SSL 连接到 PostgreSQL 数据库实例](#ssl-certificate-rotation-postgresql.determining-server)
+ [确定客户端是否需要证书验证才能连接](#ssl-certificate-rotation-postgresql.determining-client)
+ [更新应用程序信任存储](#ssl-certificate-rotation-postgresql.updating-trust-store)
+ [对不同类型的应用程序使用 SSL/TLS 连接](#ssl-certificate-rotation-postgresql.applications)

## 确定是否有应用程序使用 SSL 连接到 PostgreSQL 数据库实例
<a name="ssl-certificate-rotation-postgresql.determining-server"></a>

检查数据库实例配置中 `rds.force_ssl` 参数的值。默认情况下，对于使用 PostgreSQL 版本 15 之前版本的数据库实例，`rds.force_ssl` 参数设置为 `0`（关闭）。默认情况下，对于使用 PostgreSQL 版本 15 及更高主要版本的数据库实例，`rds.force_ssl` 设置为 `1`（打开）。如果 `rds.force_ssl` 参数设置为 `1`（开），则客户端需要使用 SSL/TLS 进行连接。有关参数组的更多信息，请参阅 [Amazon RDS 的参数组](USER_WorkingWithParamGroups.md)。

如果您使用的是 RDS PostgreSQL 版本 9.5 或更高的主要版本，并且 `rds.force_ssl` 未设置为 `1`（开），请查询 `pg_stat_ssl` 视图来检查使用 SSL 的连接。例如，以下查询仅返回 SSL 连接和有关使用 SSL 的客户端的信息。

```
SELECT datname, usename, ssl, client_addr 
  FROM pg_stat_ssl INNER JOIN pg_stat_activity ON pg_stat_ssl.pid = pg_stat_activity.pid
  WHERE ssl is true and usename<>'rdsadmin';
```

只有使用 SSL/TLS 连接的行才显示有关连接的信息。下面是示例输出。

```
 datname  | usename | ssl | client_addr 
----------+---------+-----+-------------
 benchdb  | pgadmin | t   | 53.95.6.13
 postgres | pgadmin | t   | 53.95.6.13
(2 rows)
```

此查询仅显示进行查询时有效的连接。没有结果并不表示没有应用程序在使用 SSL 连接。其他 SSL 连接可能在不同的时间建立。

## 确定客户端是否需要证书验证才能连接
<a name="ssl-certificate-rotation-postgresql.determining-client"></a>

当客户端（如 psql 或 JDBC）配置有 SSL 支持时，默认情况下，该客户端会首先尝试使用 SSL 连接到数据库。如果该客户端无法使用 SSL 进行连接，它将恢复为不使用 SSL 进行连接。用于基于 libpq 的客户端（例如 psql）和 JDBC 的默认 `sslmode` 模式设置为 `prefer`。仅当提供 `sslrootcert` 且 `sslmode` 设置为 `verify-ca` 或 `verify-full` 时，才会验证服务器上的证书。如果证书无效，则会引发错误。

使用 `PGSSLROOTCERT` 验证具有 `PGSSLMODE` 环境变量的证书，且 `PGSSLMODE` 设置为 `verify-ca` 或 `verify-full`。

```
PGSSLMODE=verify-full PGSSLROOTCERT=/fullpath/ssl-cert.pem psql -h pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com -U masteruser -d postgres
```

使用 `sslrootcert` 参数验证 `sslmode` 为连接字符串格式的证书，将 `sslmode` 设置为 `verify-ca` 或 `verify-full` 来验证证书。

```
psql "host=pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com sslmode=verify-full sslrootcert=/full/path/ssl-cert.pem user=masteruser dbname=postgres"
```

例如，在上述情况下，如果您使用无效的根证书，则会在客户端上看到类似于以下内容的错误。

```
psql: SSL error: certificate verify failed
```

## 更新应用程序信任存储
<a name="ssl-certificate-rotation-postgresql.updating-trust-store"></a>

有关更新 PostgreSQL 应用程序的信任存储的信息，请参阅 PostgreSQL 文档中的[使用 SSL 保护 TCP/IP 连接](https://www.postgresql.org/docs/current/ssl-tcp.html)。

有关下载根证书的信息，请参阅 [使用 SSL/TLS 加密与数据库实例或集群的连接](UsingWithRDS.SSL.md)。

有关导入证书的示例脚本，请参阅 [将证书导入信任存储的示例脚本](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-sample-script)。

**注意**  
更新信任存储时，除了添加新证书外，还可以保留较旧证书。

## 对不同类型的应用程序使用 SSL/TLS 连接
<a name="ssl-certificate-rotation-postgresql.applications"></a>

下面提供了有关对不同类型应用程序使用 SSL/TLS 连接的信息：
+ **psql**

  通过将选项指定为连接字符串或环境变量，可以从命令行调用客户端。对于 SSL/TLS 连接，相关选项为 `sslmode`（环境变量 `PGSSLMODE`）和 `sslrootcert`（环境变量 `PGSSLROOTCERT`）。

  有关完整的选项列表，请参阅 PostgreSQL 文档中的[参数关键字](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS)。有关完整的环境变量列表，请参阅 PostgreSQL 文档中的[环境变量](https://www.postgresql.org/docs/current/libpq-envars.html)。
+ **pgAdmin**

  这个基于浏览器的客户端是一个更加用户友好的界面，用于连接到 PostgreSQL 数据库。

  有关配置连接的信息，请参阅 [pgAdmin 文档](https://www.pgadmin.org/docs/pgadmin4/latest/server_dialog.html)。
+ **JDBC**

  JDBC 支持与 Java 应用程序的数据库连接。

  有关使用 JDBC 连接到 PostgreSQL 数据库的一般信息，请参阅 PostgreSQL JDBC 驱动程序文档中的[连接到数据库](https://jdbc.postgresql.org/documentation/use/#connecting-to-the-database)。有关使用 SSL/TLS 进行连接的信息，请参阅 PostgreSQL JDBC 驱动程序文档中的[配置客户端](https://jdbc.postgresql.org/documentation/ssl/#configuring-the-client)。
+ **Python**

  一个常用的连接到 PostgreSQL 数据库的 Python 库是 `psycopg2`。

  有关如何使用 `psycopg2` 的信息，请参阅 [psycopg2 文档](https://pypi.org/project/psycopg2/)。有关如何连接到 PostgreSQL 数据库的简短教程，请参阅 [Psycopg2 教程](https://wiki.postgresql.org/wiki/Psycopg2_Tutorial)。您可以在 [psycopg2 模块内容](http://initd.org/psycopg/docs/module.html#module-psycopg2)中找到有关连接命令接受的选项的信息。

**重要**  
在确定了数据库连接使用 SSL/TLS 并更新了应用程序信任存储之后，可以更新数据库以使用 rds-ca-rsa2048-g1 证书。有关说明，请参阅[通过修改数据库实例或集群来更新 CA 证书](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-updating)中的步骤 3。