Skip to main content

ClickHouse におけるコード 210 の SSL 証明書検証エラーの解決

このエラーは通常、次のように報告されます。 Code: 210. DB::NetException: SSL Exception: error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED

エラーの原因

このエラーは、clickhouse-client を使用して ClickHouseサーバーへの接続を試行している際に発生します。原因は、次のいずれかです。
  • クライアントの設定ファイル config.xml に、マシンのデフォルトの CA ストア内のルート証明書が含まれていない
  • 自己署名証明書または内部 CA 証明書が設定されていない

解決策

内部CAまたは自己署名CAを使用する場合は、クライアントディレクトリ (例: /etc/clickhouse-client) 内の config.xml でCAルート証明書を設定し、既定の場所にある既定のルートCA証明書を読み込まないようにします。 以下は設定例です。

macOS 上の Python クライアント

Python クライアントでは、このエラーは通常次のように表示されます。 ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate macOS では、python.org の Python ビルドは、システムのキーチェーンではなく OpenSSL のデフォルトパスを通じて証明書を検証します。新規インストール直後は、これらのパスがルート証明書バンドルを指していません。インストーラーには certifi が含まれていますが、同梱の Install Certificates.command スクリプトを実行するまで、OpenSSL のデフォルトの場所にはリンクされません。そのため、それまでは証明書自体は有効でも、クライアントは ClickHouse Cloud のサーバー証明書を検証できません。これは Python 3.11 に限らず、python.org の macOS ビルド全般 (Python 3.6 以降) に影響します。 Install Certificates.command を実行して、certifi を OpenSSL のデフォルト証明書パスにリンクしてください。パス内のバージョンは、インストール環境に合わせて調整してください。
または、クライアントが certifi バンドルを直接使用するように設定します。ClickHouse Connect は自動的に certifi にフォールバックしないため、ca_cert パラメータでバンドルを渡してください。

参考資料

clickhouse-client の設定に関するドキュメントを参照してください。
最終更新日 2026年8月14日