5.4 启用主机名身份验证

AWS 上的 MySQL HeatWave 支持 TLSv1.2,并要求对所有 MySQL 客户端和应用程序连接进行加密。为了增加安全性,您可以下载签名证书包并为连接的客户端和应用程序启用主机名身份验证。

供应数据库系统时,会在 MySQL 服务器上安装 TLS 证书。将 DB System 主机名定义为 的Common Name证书由区域证书颁发机构 (CA) 签名。当客户端连接到启用了主机名身份验证且 CA 证书与服务器使用的证书匹配的 DB 系统时,服务器和客户端信任同一个 CA 证书,并且客户端验证它连接到的主机是那个打算。

要获取 CA 证书文件,您必须下载 MySQL HeatWave on AWS 证书包。将证书包存储在客户端或应用程序可以访问的安全位置。该捆绑包是 PEM 格式的区域 CA 证书文件。您可以从以下位置下载 AWS 美国东部(弗吉尼亚北部)区域 ( us-east-1) 的区域证书包:

https://cloud.mysql.com/us-east-1/aws-us-east-1-cabundle.pem

笔记

AWS 上的 MySQL HeatWave 目前仅在 AWS 美国东部(弗吉尼亚北部)区域 (us-east-1) 受支持。随着对 AWS 上的 MySQL HeatWave 的支持扩展到其他区域,其他区域的证书包也将可用。

或者,您可以使用 cURL 下载区域证书包,如下所示:

$> curl -o aws-us-east-1-cabundle.pem \
   https://cloud.mysql.com/us-east-1/aws-us-east-1-cabundle.pem
笔记

建议您每季度更新一次 MySQL HeatWave on AWS 证书包,以确保您始终拥有最新版本。连接问题 --ssl-mode=VERIFY_IDENTITY可能表明您的证书包已过时。

要建立加密连接,请使用--ssl-ca--ssl-mode选项启动 MySQL 客户端;例如:

MySQL外壳:

$> mysqlsh --host HostNameOfMySQLDBSystem \
           --user=user1 \
           --password \
           --port=3306 \
           --ssl-mode=VERIFY_IDENTITY \
           --ssl-ca=aws-us-east-1-cabundle.pem

MySQL 命令行客户端:

$> mysql --host=HostNameOfMySQLDBSystem \ 
         --user=user1 \
         --password \ 
         --protocol=TCP \
         --port 3306 \
         --ssl-mode=VERIFY_IDENTITY \ 
         --ssl-ca=aws-us-east-1-cabundle.pem

在哪里:

  • --host指定数据库系统的主机名。主机名可在 MySQL 数据库系统详细信息页面上找到。请参阅 第 3.4 节,“查看数据库系统详细信息”

  • --user指定用于连接到服务器的 MySQL 帐户的用户名。

  • --password指定用于连接到服务器的 MySQL 帐户的密码。密码值是可选的。如果没有像上面的例子那样给出,mysql会提示输入一个。

  • --protocol指定用于连接到服务器的传输协议。此选项不适用于 MySQL Shell。

  • --ssl-mode是与服务器连接的安全状态。该 VERIFY_IDENTITY模式确保建立加密连接,根据配置的 CA 证书验证 TLS 证书,并通过检查客户端用于连接到服务器的主机名与证书中的身份来验证主机名身份服务器发送给客户端。

  • --ssl-ca指定 CA 证书文件的完全限定路径。

有关ssl-*连接选项的更多信息,请参阅用于连接到服务器的命令选项