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

Docker部署Prometheus配置自签SSL证书出现TLS握手错误如何解决

报错可能原因

  • 自签证书未配置使用者备用名称(SAN):当前主流TLS实现已不再仅依赖通用名(CN)校验域名/IP,你访问Prometheus用的地址(如127.0.0.1)未写入证书SAN字段时,就会触发证书校验失败。生成证书时需要在openssl配置中新增IP或域名的SAN扩展才能正常使用。
  • 容器内证书权限错误:Prometheus容器默认使用非root用户(通常是uid 65534的nobody用户)运行,若挂载进容器的prometheus.crt、prometheus.key文件权限为仅root可读(如600权限),Prometheus进程无法读取证书文件也会触发TLS握手失败,你可以将证书权限调整为644后再尝试。
  • 证书扩展用途不匹配:你当前配置中将同一证书同时用作服务端证书(web服务HTTPS)、客户端证书(抓取自身时的客户端认证)以及CA证书,生成证书时若未在扩展字段中开启服务端身份验证、客户端身份验证的密钥用法,会导致对应场景下证书被判定为无效。
  • 抓取地址和证书校验规则不匹配:如果你的prometheus抓取任务的static_configs中配置的目标地址和证书可校验的地址不统一,比如证书仅支持域名prometheus.local,但抓取目标填的是127.0.0.1:9090,也会触发证书不匹配错误。

快速排查方法

你可以进入运行中的Prometheus容器,执行以下命令验证证书可用性:

curl -v --cacert /etc/prometheus/prometheus.crt https://<你实际访问的地址>:9090

根据curl返回的具体报错可以快速定位是权限问题、证书匹配问题还是证书本身扩展字段的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:54:05