Secure Sockets Layer (SSL) を使用して、Amazon Relational Database Service (Amazon RDS) DB インスタンスまたはクラスターに接続しようとしています。次のエラーを受け取りました:
「ERROR 2026 (HY000): SSL 接続エラー」
Amazon RDS for MySQL、Amazon Aurora for MySQL、または Amazon Aurora Serverless の ERROR 2026 を解決するにはどうすればよいですか?
簡単な説明
ERROR 2026 には、次の 3 種類のエラーメッセージがあります:
- ERROR 2026 (HY000): SSL 接続エラー: SSL 証明書の検証に失敗しました
- ERROR 2026 (HY000): SSL 接続エラー: サーバーは SSL をサポートしていません
- 「ERROR 2026 (HY000): SSL connection error: ASN: bad other signature confirmation」
それぞれのエラーメッセージについて、以下のトラブルシューティング手順を参照してください。
解決方法
ERROR 2026 (HY000): SSL 接続エラー: SSL 証明書の検証に失敗しました
このエラーのトラブルシューティングを行うには、最初にクラスターエンドポイントと DB インスタンスエンドポイントのどちらを使用しているかを確認します。Amazon RDS がどのように SSL をサポートするかについては、「MySQL DB インスタンスでの SSL の使用」または「Aurora MySQL DB クラスターでの SSL の使用」をご参照ください。
Subject Alternative Names (SAN) をサポートするクライアントを使用している場合は、クラスターエンドポイントだけを使用できます。クライアントが SAN をサポートしていない場合は、プライマリ DB インスタンスのエンドポイントを使用する必要があります。
注: デフォルトの MySQL コマンドラインクライアントは、SAN をサポートしません。
クラスターエンドポイントに接続しようとしたときにこのエラーが発生した場合は、接続文字列でプライマリ DB インスタンスのエンドポイントに接続してみてください。例えば、クラスターエンドポイントに接続できます。次の例では、クラスターエンドポイントは abcdefg-clust.cluster-xxxx.us-east-1.rds.amazonaws.com です。DB インスタンスエンドポイントは、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
DB インスタンスエンドポイントを使用して接続する
[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
ERROR 2026 (HY000): SSL 接続エラー: サーバーは SSL をサポートしていません
使用しているサーバーまたはエンジンのバージョンが SSL をサポートしていない場合、このエラーを受け取ることがあります。このエラーを解決するには、SSL 接続をサポートするエンジンに移行します。
「ERROR 2026 (HY000): SSL connection error: SSL_CTX_set_default_verify_paths failed」または「ERROR 2026 (HY000): SSL connection error: ASN: bad other signature confirmation」の場合
証明書識別子 (証明書ファイル名) が正しくない場合、このエラーを受け取ることがあります。証明書識別子が MySQL クライアントでサポートされていない場合 (Aurora Serverless など) にも、このエラーを受け取ることがあります。Aurora Serverless クラスターを使用していて、MySQL クライアントを使用して Aurora Serverless に接続している場合は、MySQL 8.0 互換の MySQL コマンドを使用する必要があります。
正常に接続するには、必ず正しい証明書識別子名と証明書への正しいパスを使用してください。接続する前に、正しい証明書をダウンロードしたことを確認してください。詳細については、「SSL を使用して DB インスタンスへの接続を暗号化する」をご参照ください。
ルート証明書ファイルは、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの Downloads ディレクトリにあります。次の例では、間違ったパスを入力するので、ERROR 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
注: この例では、ホームディレクトリの接続文字列を使用していますが、ルート証明書は Downloads ディレクトリにあります。
次の例では、ルート証明書へのパスを使用して正常に接続しています。
[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
関連情報
Aurora Serverless で TLS/SSL を使用する