SSL/TLS を使用して Amazon Relational Database Service (Amazon RDS) MySQL DB インスタンスまたはクラスターに接続したいと考えています。しかし、次のエラーが発生しました。 “ERROR 2026 (HY000): SSL connection error.”
解決策
表示されたエラーを解決するには、次のトラブルシューティング手順を実行します。
注: 次のコマンド例では、クラスターエンドポイントは abcdefg-clust.cluster-xxxx.us-east-1.rds.amazonaws.com です。そして DB インスタンスのエンドポイントは abcdefg-inst.xxxx.us-east-1.rds.amazonaws.com です。
SSL certificate validation failure
このエラーをトラブルシューティングするには、まずクラスターエンドポイントと DB インスタンスエンドポイントのどちらを使用しているかを検証します。詳細については、「Amazon RDS for MySQL」または「SSL/TLS を使用して DB クラスターへの接続を暗号化する」を参照してください。
サブジェクト代替名 (SAN) をサポートするクライアントを使用する場合、使用できるのはクラスターエンドポイントだけです。クライアントが SAN をサポートしていない場合は、プライマリ DB インスタンスのエンドポイントを使用する必要があります。
注: デフォルトの MySQL コマンドラインクライアントは SAN をサポートしていません。
クラスターエンドポイントに接続しようとしたときに SSL 証明書検証エラーが発生した場合は、プライマリ DB インスタンスのエンドポイントに接続します。
クラスターエンドポイントを使用して接続するコマンドの例:
[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
DB インスタンスエンドポイントを使用して接続するコマンドの例:
[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
Server doesn't support SSL
このエラーは、使用しているサーバーまたはエンジンのバージョンが SSL/TLS をサポートしていない場合に表示されます。このエラーを解決するには、SSL/TLS 接続をサポートしているエンジンに移行してください。
SSL_CTX_set_default_verify_paths failed
このエラーは、証明書ファイルが存在しない場合、ファイルパスが正しくない場合、またはファイルを読み取るアクセス許可がない場合に表示されます。また、証明書ファイルが保存されているディレクトリへのアクセス許可がない場合にも表示されます。証明書ファイルが、アクセス権限のあるディレクトリにあることを確認してください。
接続する前に、正しい証明書をダウンロードしたことを確認します。接続するときは、正しい証明書識別子名と証明書への正しいパスを使用していることを確認してください。
グローバルバンドル証明書ファイルは、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
DB インスタンスに接続しようとしている、アクセス許可が不十分なコマンドの例:
[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
DB インスタンスに正常に接続している正しいアクセス許可を持つコマンドの例:
[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 connection error: error:00000001:lib(0)::reason(1)
この接続エラーは、次のシナリオで発生します。
- 間違った証明書ファイルを使用している。
- 証明書ファイルが RDS インスタンスが必要とする証明書と一致しない。
- MySQL クライアントが証明書識別子をサポートしていない。
注: MySQL 互換の Aurora Serverless DB クラスターでは、MySQL 8.0 互換のコマンドを使用する必要があります。
接続する前に、正しい証明書をダウンロードしたことを確認します。接続するときは、正しい証明書識別子名と証明書への正しいパスを使用していることを確認してください。
DB インスタンスエンドポイントに接続しようとしている誤った証明書を含むコマンドの例:
[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)
DB インスタンスに正常に接続している正しい証明書を含むコマンドの例:
[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.
関連情報
Aurora Serverless v1 での TLS/SSL の使用