解决 ClickHouse 中的 SSL 证书验证错误
·一分钟阅读
了解如何解决 SSL 异常 `CERTIFICATE_VERIFY_FAILED` 错误。
解决 ClickHouse 中的 SSL 证书验证错误
该错误通常报告为
DB::NetException: SSL Exception: error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED
错误原因
尝试使用 clickhouse-client
连接到 ClickHouse 服务器时,会发生此错误。错误的原因是以下之一
- 客户端配置文件
config.xml
缺少机器 CA 默认存储中的根证书,或者 - 存在未配置的自签名或内部 CA 证书
解决方案
如果使用内部或自签名 CA,请在客户端目录(例如 /etc/clickhouse-client
)的 config.xml
中配置 CA 根证书,并禁用从默认位置加载默认根 CA 证书。
这是一个配置示例
<openSSL>
<client>
<loadDefaultCAFile>false</loadDefaultCAFile>
<caConfig>/etc/clickhouse-server/certs/marsnet_ca.crt</caConfig>
<cacheSessions>true</cacheSessions>
<disableProtocols>sslv2,sslv3</disableProtocols>
<preferServerCiphers>true</preferServerCiphers>
<invalidCertificateHandler>
<name>RejectCertificateHandler</name>
</invalidCertificateHandler>
</client>
</openSSL>
其他资源
查看 https://clickhouse.ac.cn/docs/en/interfaces/cli/#configuration_files