Prometheus blackbox_exporter配置insecure_skip_verify后仍SSL检查失败求助
问题分析与解决方法
从你提供的日志和配置来看,核心问题是证书域名与目标主机名不匹配,且你的insecure_skip_verify: true配置大概率没有生效(或是旧版本blackbox_exporter存在TLS处理bug)。
为什么会出现这个错误?
日志里的关键错误信息已经点明原因:
err="Get \"https://211.150.65.26\": x509: 证书仅对*.263.net、263.net有效,对www.263.com无效"
blackbox_exporter解析www.263.com得到IP211.150.65.26后,直接向该IP发起HTTPS请求,同时设置Host头为www.263.com。但目标服务器返回的证书仅对*.263.net/263.net域名有效,和www.263.com不匹配。
另外注意到日志中显示ip_protocol=ip6,但你配置的是preferred_ip_protocol: "ip4",这说明你的配置文件可能没有被blackbox_exporter正确加载——这很可能是insecure_skip_verify未生效的核心原因。
解决步骤
1. 确认配置已正确加载并生效
- 先检查blackbox_exporter的启动命令,确保它指向了你修改后的配置文件:
你应该看到类似ps aux | grep blackbox_exporter--config.file=/path/to/your/blackbox.yml的参数,且文件路径正确。 - 重启blackbox_exporter服务,强制加载新配置:
# 若用systemd管理服务 systemctl restart blackbox_exporter # 若直接运行进程,先终止再重启 pkill blackbox_exporter && ./blackbox_exporter --config.file=/path/to/your/config.yml
2. 升级blackbox_exporter到最新稳定版本
你日志的时间是2021年,使用的版本可能存在TLS配置的兼容性bug。新版本的blackbox_exporter对insecure_skip_verify的处理更完善,能正确跳过包括主机名匹配在内的所有证书验证环节。
3. 调整TLS配置(可选)
如果重启或升级后仍有问题,尝试在tls_config中添加server_name参数,强制指定SNI名称:
modules: http_2xx: prober: http timeout: 5s http: valid_http_versions: ["HTTP/1.1", "HTTP/2.0"] method: GET preferred_ip_protocol: "ip4" ip_protocol_fallback: false no_follow_redirects: false fail_if_ssl: false fail_if_not_ssl: false tls_config: insecure_skip_verify: true server_name: "www.263.com"
4. 确认目标网站的证书配置(可选)
如果你的探测需求不是仅验证服务可达,而是要确保SSL证书有效,那需要确认www.263.com是否配置了正确的证书——目前来看它的证书是针对263.net域名的,这本身就是一个配置错误。
内容的提问来源于stack exchange,提问作者Rui Mao
相关产品推荐
相关产品推荐

