跳至内容

如何解决连接到 Amazon RDS for MySQL 或 Aurora 数据库实例时出现的 "ERROR 2026 SSL connection" 错误?

2 分钟阅读
0

我想使用 SSL/TLS 连接到我的 Amazon Relational Database Service (Amazon RDS) MySQL 数据库实例或集群。但是,我收到了以下错误: "ERROR 2026 (HY000): SSL connection error."

解决方法

请使用以下故障排除步骤来解决您收到的错误。

**注意:**在以下命令示例中,集群端点为 abcdefg-clust.cluster-xxxx.us-east-1.rds.amazonaws.com。数据库实例端点为 abcdefg-inst.xxxx.us-east-1.rds.amazonaws.com

SSL 证书验证失败

要对此错误进行故障排除,首先请验证您使用的是集群端点还是数据库实例端点。有关详细信息,请参阅 Amazon RDS for MySQL使用 SSL/TLS 加密与数据库集群的连接

如果您的客户端支持主题备用名称 (SAN) ,则只能使用集群端点。如果您的客户端不支持 SAN,则必须使用主数据库实例的端点。

**注意:**默认的 MySQL 命令行客户端不支持 SAN。

如果您在尝试连接到集群端点时收到 SSL 证书验证错误,请连接到主数据库实例的端点。

使用集群端点进行连接的命令示例:

[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-clust.cluster-xxxx.us-east-1.rds.amazonaws.com --ssl-ca global-bundle.pem --ssl-mode=VERIFY_IDENTITY -u test -p test
Enter password:
ERROR 2026 (HY000): SSL connection error: SSL certificate validation failure

使用数据库实例端点进行连接的命令示例:

[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-inst.xxxx.us-east-1.rds.amazonaws.com --ssl-ca rglobal-bundle.pem --ssl-mode=VERIFY_IDENTITY -u test -p test
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 26

服务器不支持 SSL

当您使用的服务器或引擎版本不支持 SSL/TLS 时,您会收到此错误。要解决此错误,请迁移到支持 SSL/TLS 连接的引擎。

SSL_CTX_set_default_verify_paths 失败

当证书文件不存在、文件路径不正确或您没有读取文件的权限时,您会收到此错误。当您无权访问存储证书文件的目录时,也可能会收到此错误。确保证书文件位于您有权访问的目录中。

在连接之前,请确认您已下载正确的证书。进行连接时,请确保所使用的证书标识符名称和证书路径正确无误。

全局捆绑包证书文件位于 Amazon Elastic Compute Cloud (Amazon EC2) 实例的下载目录中。

使用错误的全局捆绑包证书路径进行连接的命令示例:

[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-clust.cluster-xxxxx.us-east-1.rds.amazonaws.com --ssl-ca global-bundle.pem --ssl-mode=VERIFY_IDENTITY -u test -p test
Enter password:
ERROR 2026 (HY000): SSL connection error: SSL_CTX_set_default_verify_paths failed

**注意:**在上述命令中,所使用的是主目录中的连接字符串,但全局捆绑包证书位于下载目录中。

使用正确的全局捆绑包证书路径进行连接的命令示例:

[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-clust.cluster-xxxx.us-east-1.rds.amazonaws.com --ssl-ca /home/ec2-user/Downloads/global-bundle.pem   
--ssl-mode=VERIFY_IDENTITY -u test -p test  
Enter password:  
Welcome to the MySQL monitor. Commands end with ; or \g.   
Your MySQL connection id is 26

权限不足但尝试连接到数据库实例的命令示例:

[ec2-user@ip-192-0-2-0 ~]$ sudo chmod 700 global-bundle.pem
[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-inst.xxxx.us-east-1.rds.amazonaws.com --ssl-ca global-bundle.pem --ssl-mode=VERIFY_IDENTITY -u test -p test
Enter password:
ERROR 2026 (HY000): SSL connection error: SSL_CTX_set_default_verify_paths failed

具有正确权限且成功连接到数据库实例的命令示例:

[ec2-user@ip-192-0-2-0 ~]$ sudo chmod 755 global-bundle.pem
[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-inst.xxxx.us-east-1.rds.amazonaws.com --ssl-ca global-bundle.pem --ssl-mode=VERIFY_IDENTITY -u test -p test
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 810

SSL 连接错误:error:00000001:lib(0)::reason(1)

您会在以下场景中收到此连接错误:

  • 您使用的证书文件不正确。
  • 证书文件与 RDS 实例所需的证书不匹配。
  • MySQL 客户端不支持证书标识符。

**注意:**对于兼容 MySQL 的 Aurora Serverless 数据库集群,必须使用与 MySQL 8.0 兼容的命令。

在连接之前,请确认您已下载正确的证书。进行连接时,请确保所使用的证书标识符名称和证书路径正确无误。

使用错误证书尝试连接到数据库实例端点的命令示例:

[ec2-user@ip-192-0-2-0 ~]$ mysql -habcdefg-inst.xxxx.us-east-1.rds.amazonaws.com --ssl-ca rds-ca-2019-root.pem --ssl-mode=VERIFY_IDENTITY -u test -p  
Enter password:   
ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0)::reason(1)

使用正确证书成功连接到数据库实例的命令示例:

[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-inst.xxxx.us-east-1.rds.amazonaws.com --ssl-ca  global-bundle.pem --ssl-mode=VERIFY_IDENTITY -u admin -p  
Enter password:   
Welcome to the MySQL monitor.  Commands end with ; or \g.

相关信息

将 TLS/SSL 与 Aurora Serverless v1 配合使用

AWS 官方已更新 2 年前