You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ClickHouse连接报错400:普通HTTP请求发送至HTTPS端口咨询

解决ClickHouse连接时的"HTTP请求发送到HTTPS端口"错误

错误原因

错误提示400 The plain HTTP request was sent to HTTPS port明确说明:当前clickhouse.prod.do.database:8123端口已被配置为HTTPS协议端口,但你的代码默认使用HTTP协议发起连接,导致协议不兼容。之前代码能正常运行,大概率是服务端后续修改了端口的协议配置,或者新笔记本的网络环境强制将HTTP请求重定向到HTTPS端口。

解决方案

1. 启用HTTPS协议连接

修改clickhouse_connect.get_client()的参数,添加secure=True启用HTTPS协议,这是最直接的修复方式:

import numpy as np
import pandas as pd
import datetime as dt
import gspread
import clickhouse_connect
from oauth2client.service_account import ServiceAccountCredentials

client = clickhouse_connect.get_client(
                                host='clickhouse.prod.do.database', 
                                port=8123, 
                                username='default', 
                                password='1234567',
                                secure=True)  # 启用HTTPS协议

2. 额外排查场景(若上述修改无效)

  • 确认HTTPS端口:部分ClickHouse部署会将HTTPS服务放在8443端口,若8123实际仍为HTTP但被nginx强制跳转,可尝试更换端口为8443并保留secure=True。
  • 处理自签名证书:如果服务端使用自签名SSL证书,新笔记本的信任链中没有该证书,会导致连接失败。可临时添加verify=False跳过证书验证(生产环境不推荐,建议导入信任证书):
    client = clickhouse_connect.get_client(
                                    host='clickhouse.prod.do.database', 
                                    port=8123, 
                                    username='default', 
                                    password='1234567',
                                    secure=True,
                                    verify=False)
    
  • 检查网络代理:新笔记本若配置了全局代理,可能导致请求被强制转换为HTTPS,可尝试关闭代理后重新连接。

内容的提问来源于stack exchange,提问作者EugeneSam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 12:35:06