🔘
certificate verify failed: unable to get local issuer certificateが出る
エラーログ
RDSプロキシにて
Database error: (2003, "Can't connect to MySQL server on 'dev-proxy-db-01.XXX.ap-northeast-1.rds.amazonaws.com' ([SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006))")
が出る
原因
このエラーは、SSL証明書の検証に失敗した場合に発生します。
対処方法
-
正しい証明書のダウンロードと使用
- 最新のRDS証明書をダウンロード:
wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem -O rds-ca-2019-root.pem
- S3バケットに証明書をアップロード:
resource "aws_s3_object" "rds_ca_cert" { bucket = aws_s3_bucket.lambda_bucket.bucket key = "rds-ca-2019-root.pem" source = "${path.module}/rds-ca-2019-root.pem" }
-
Lambda関数コードの修正
- SSL contextの設定を適切に行う:
ssl_context = ssl.create_default_context(cafile=temp_cert_file.name) ssl_context.check_hostname = False ssl_context.verify_mode = ssl.CERT_REQUIRED
-
RDSプロキシの設定確認
-
require_tls
が正しく設定されているか確認:
resource "aws_db_proxy" "rds_proxy_db_dump" { # 他の設定... require_tls = true }
-
Discussion