带有自签名 ssl 证书的 prometheus 的 Https

Posted

技术标签:

【中文标题】带有自签名 ssl 证书的 prometheus 的 Https【英文标题】:Https for prometheus with self-signed ssl certificate 【发布时间】:2021-09-24 23:26:25 【问题描述】:

尝试为 prometheus 建立 SSL(通过 docker 启动)。我使用 open ssl 自己生成了密钥和 crt。对:key 和 crt 工作正常。 当我在主机上执行此命令时:

openssl s_server -cert prometheus.crt -key prometheus.key

意思是“接受”

这是我用于 prometheus 容器的 Dockerfile:https://pastebin.com/4wGtCGp6 当我构建映像并启动它时,它说: level=error ts=2021-09-24T20:44:11.649Z caller=stdlib.go:105 component=web caller="http: 来自 127.0.0.1:50458 的 TLS 握手错误" msg="remote error: tls: bad certificate " кричит постоянно

在 web.yml 中,我通过以下方式配置 SSL:

tls_server_config:
  cert_file: /etc/prometheus/prometheus.crt
  key_file: /etc/prometheus/prometheus.key

在 prometheus.yml 中,我通过以下方式配置 SSL:

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    scheme: https
    tls_config:
      ca_file: /etc/prometheus/prometheus.crt
      cert_file: /etc/prometheus/prometheus.crt
      key_file: /etc/prometheus/prometheus.key

这个错误的原因可能是什么?

【问题讨论】:

【参考方案1】:

如果它是自签名的,则不需要 CA 文件,因此请尝试删除 tls_config 中的该行并重新启动容器。

我知道这很老了,所以如果回答一个老问题不好,请道歉。随意删除。

【讨论】:

以上是关于带有自签名 ssl 证书的 prometheus 的 Https的主要内容,如果未能解决你的问题,请参考以下文章

带有 Python SSL 套接字的自签名证书

带有自签名证书的 IIS 7.5 SSL 错误“ssl_error_rx_record_too_long”

Jenkins 无法使用带有自签名证书的 HTTPS (HTTP + SSL) 连接到 SonarQube 服务器

带有公司签名 SSL 证书的 Python setuptools

ncat SSL 问题,证书验证失败(自签名证书)

Java:使用自签名证书的 SSL 客户端身份验证