如何解決在連線到 Amazon RDS for MySQL 或 Aurora 資料庫執行個體時發生的錯誤 2026 SSL 連線錯誤?

2 分的閱讀內容
0

我正在嘗試使用 Secure Sockets Layer (SSL) 連線到 Amazon Relational Database Service (Amazon RDS) 數據庫實例或叢集。我收到以下錯誤訊息: 「錯誤 2026 (HY000): SSL 連線錯誤」。如何解決 Amazon RDS for MySQL、Amazon Aurora for MySQL 或 Amazon Aurora Serverless 的錯誤 2026?

簡短描述

錯誤 2026 有三種不同類型的錯誤訊息:

  • 錯誤 2026 (HY000): SSL 連線錯誤: SSL 憑證驗證失敗
  • 錯誤 2026 (HY000): SSL 連線錯誤: 伺服器不支援 SSL
  • 錯誤 2026 (HY000): SSL 連線錯誤: ASN:無效的其他簽章確認

請參閱下列針對每個錯誤訊息的疑難排解步驟。

解決方法

錯誤 2026 (HY000): SSL 連線錯誤: SSL 憑證驗證失敗

若要疑難排解此錯誤,請先驗證您使用的是叢集端點還是資料庫執行個體端點。若要了解 Amazon RDS 如何支援 SSL,請參閱[使用 SSL 搭配 MySQL 資料庫執行個體使用 SSL 搭配 Aurora MySQL 資料庫叢集](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Security.html#AuroraMySQL.Security.SSL)。

如果您使用支援主體替代名稱 (SAN) 的用戶端,則只能使用叢集端點。如果您的用戶端不支援 SAN,則必須使用主資料庫執行個體的端點。

**注意:**預設的 MySQL 命令列用戶端不支援 SAN。

如果在嘗試連線到叢集端點時收到此錯誤訊息,請嘗試連線到連線字串中主資料庫執行個體的端點。例如,您可以連線到叢集端點。在下列範例中,叢集端點為 abcdefg-clust.cluster-xxxx.us-east-1.rds.amazonaws.com。資料庫執行個體端點為 abcdefg-inst.xxxx.us-east-1.rds.amazonaws.com

使用叢集端點進行連線

[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-clust.cluster-xxxx.us-east-1.rds.amazonaws.com --ssl-ca rds-combined-ca-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 rds-combined-ca-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

錯誤 2026 (HY000): SSL 連線錯誤: 伺服器不支援 SSL

如果您使用的伺服器或引擎版本不支援 SSL,您可能會收到此錯誤訊息。若要解決此錯誤,請遷移至支援 SSL 連線的引擎。

錯誤 2026 (HY000): SSL 連線錯誤: SSL_CTX_set_default_verify_paths 失敗或錯誤 2026 (HY000): SSL 連線錯誤: ASN:無效的其他簽章確認

如果憑證識別碼 (憑證檔案名稱) 不正確,您可能會收到此錯誤訊息。如果 MySQL 用戶端 (例如 Aurora Serverless) 不支援憑證識別碼,您也可能會收到此錯誤訊息。如果您使用 Aurora Serverless 叢集,並使用 MySQL 用戶端連線至 Aurora Serverless,則必須使用與 MySQL 8.0 相容的 MySQL 命令。

請務必使用正確的憑證識別碼名稱和正確的憑證路徑以成功連線。連線之前,請確認您已下載正確的憑證。如需詳細資訊,請參閱使用 SSL 加密指向資料庫執行個體的連線

根憑證檔案位於 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的下載目錄中。在下列範例中,您輸入錯誤的路徑,導致了錯誤 2026

[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-clust.cluster-xxxxx.us-east-1.rds.amazonaws.com --ssl-ca rds-combined-ca-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/rds-combined-ca-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 rds-combined-ca-bundle.pem
[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-inst.xxxx.us-east-1.rds.amazonaws.com --ssl-ca rds-combined-ca-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 rds-combined-ca-bundle.pem
[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-inst.xxxx.us-east-1.rds.amazonaws.com --ssl-ca rds-combined-ca-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

相關資訊

使用 TLS/SSL 搭配 Aurora Serverless

AWS 官方
AWS 官方已更新 3 年前