
basa/ssl-pubkey-fingerprint-exporter该Prometheus exporter用于监控SSL证书的公钥指纹,通过导出证书公钥的SHA-256指纹作为Prometheus指标,帮助用户实时跟踪SSL证书的变化情况,确保证书安全性。
/probe接口用于探测指定目标的证书指纹适用于需要监控SSL证书状态的场景,例如:
bashdocker pull basa/ssl_pubkey_fingerprint_exporter
bashdocker run -p 3000:3000 basa/ssl_pubkey_fingerprint_exporter
导出的Prometheus指标格式如下:
# HELP ssl_pubkey_fingerprint SSL证书公钥SHA-256指纹 # TYPE ssl_pubkey_fingerprint gauge ssl_pubkey_fingerprint{fingerprint="base64encodedsha256sumofbinarypublickey=",target="example.com:443"} 1
ssl_pubkey_fingerprintfingerprint:公钥二进制内容的SHA-256哈希值(Base64编码)target:监控目标地址(格式为域名:端口)在Prometheus配置文件中添加以下抓取配置,用于采集指标:
yamlscrape_configs: - job_name: "ssl-pubkey-fingerprint-exporter" metrics_path: /probe static_configs: - targets: - example.com:443 # 监控目标1(域名:端口) - [***] # 监控目标2(HTTPS URL) relabel_configs: - source_labels: [__address__] target_label: __param_target # 将目标地址作为查询参数传递给exporter - source_labels: [__param_target] target_label: instance # 将目标地址标记为instance标签 - target_label: __address__ replacement: ssl-pubkey-fingerprint-exporter:3000 # exporter服务地址和端口
使用以下Prometheus查询可检测指定目标的证书指纹是否存在(指纹变更或目标不可达时触发告警):
absent(ssl_pubkey_fingerprint{fingerprint="base64encodedsha256sumofbinarypublickey",target="example.com:443"})
absent函数返回1,可用于配置告警规则
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务