CnOps 智能运维与可观测社区
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题
导航菜单
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题

CnOps 智能运维与可观测社区

愿景

CnOps 智能运维与可观测社区是一个以"智能运维与可观测"为核心的开放、包容、分享的技术社区,旨在聚集运维专家、开发者和爱好者,共同探讨、学习和分享可观测最佳实践与最新技术,与众多技术社区合作互动,共同探讨交叉领域的技术挑战,推动可观测领域的创新与进步。

内容社区

  • 实践文章
  • 视频课程
  • 开源项目
  • 常见问答
  • 开发者工具

友情链接

  • Prometheus
  • Grafana Lab
  • OpenTelemetry
  • LoongCollector

关注我们

阿里云云原生公众号阿里云云原生
阿里云可观测公众号阿里云可观测

Copyright © 2026 CnOps 社区. All rights reserved.

首页/开源项目/Prometheus/使用 TLS 加密保护 Prometheus API 和 UI 端点
文档目录
Docker Swarm使用 Prometheus 查询日志使用 TLS 加密保护 Prometheus API 和 UI 端点使用基本认证保护 Prometheus API 和 UI 端点使用 cAdvisor 监控 Docker 容器指标为 Prometheus 对 Go 应用程序进行插桩理解和使用多目标 Exporter 模式将 Prometheus 用作 OpenTelemetry 后端Prometheus 中的 UTF-8

Prometheus

使用 TLS 加密保护 Prometheus API 和 UI 端点

Prometheus 支持 Transport Layer Security(TLS)加密来保护到 Prometheus 实例的连接(即到表达式浏览器或 HTTP API)。如果你想对这些连接强制使用 TLS,你需要创建一个特定的 web 配置文件。 NOTE: 本指南介绍的是连接到 Prometheus 实例的 TLS。Prometheus 也支持从 Prometheus...

Prometheus 支持 Transport Layer Security(TLS)加密来保护到 Prometheus 实例的连接(即到表达式浏览器或 HTTP API)。如果你想对这些连接强制使用 TLS,你需要创建一个特定的 web 配置文件。

NOTE: 本指南介绍的是连接到 Prometheus 实例的 TLS。Prometheus 也支持从 Prometheus 实例连接到抓取目标时使用 TLS。

前提条件

假设你已经有一个 Prometheus 实例在运行,并且想要对其进行调整。本指南不会涵盖 Prometheus 的初始设置。

假设你想要运行一个使用 TLS 提供服务的 Prometheus 实例,可通过 example.com 域名访问(你拥有该域名)。

还假设你已经使用 OpenSSL 或类似工具生成了以下文件:

  • SSL 证书位于 /home/prometheus/certs/example.com/example.com.crt
  • SSL 密钥位于 /home/prometheus/certs/example.com/example.com.key

你可以使用以下命令生成自签名证书和私钥:

mkdir -p /home/prometheus/certs/example.com && cd /home/prometheus/certs/certs/example.com
openssl req \
  -x509 \
  -newkey rsa:4096 \
  -nodes \
  -keyout example.com.key \
  -out example.com.crt

在提示中填写适当的信息,并确保在 Common Name 提示处输入 example.com。

Prometheus 配置

以下是一个 web-config.yml 配置文件示例。使用此配置,Prometheus 将在 TLS 后面提供所有端点服务。

tls_server_config:
  cert_file: /home/prometheus/certs/example.com/example.com.crt
  key_file: /home/prometheus/certs/example.com/example.com.key

要使 Prometheus 使用此配置,你需要使用 --web.config.file 标志调用它。

prometheus \
  --config.file=/path/to/prometheus.yml \
  --web.config.file=/path/to/web-config.yml \
  --web.external-url=https://example.com/

--web.external-url= 标志在这里是可选的。

测试

如果你想使用 example.com 域名在本地测试 TLS,可以在 /etc/hosts 文件中添加一个条目,将 example.com 重新路由到 localhost:

127.0.0.1     example.com

然后你可以使用 cURL 与你本地的 Prometheus 配置进行交互:

curl --cacert /home/prometheus/certs/example.com/example.com.crt \
  https://example.com/api/v1/label/job/values

你也可以使用 --insecure 或 -k 标志在不指定证书的情况下连接到 Prometheus 服务器:

curl -k https://example.com/api/v1/label/job/values

文章大纲