目录
证书角色说明
1. BI Connector 端的证书 (--sslPEMKeyFile)
2. Grafana 端的证书 (TLS/SSL Client Certificate & Key)
它们之间的关系
配置建议
情况一:只需要服务器验证(最常见)
情况二:需要双向SSL认证(更安全)
检查您的当前配置
推荐做法
证书角色说明
1. BI Connector 端的证书 (--sslPEMKeyFile
)
-
角色:服务器证书
-
作用:BI Connector 作为 服务器,用这个证书向客户端证明自己的身份
-
类比:就像网站的 HTTPS 证书
2. Grafana 端的证书 (TLS/SSL Client Certificate & Key)
-
角色:客户端证书
-
作用:Grafana 作为客户端,用这个证书向 BI Connector 证明自己的身份
-
类比:就像某些银行网站需要你安装客户端证书才能访问
它们之间的关系
text
Grafana (客户端) BI Connector (服务器)│ ││ ┌─────────────────────┐ ││ │ 客户端证书 │ ││ │ Client Certificate │ ││ │ Client Key │ ││ └─────────────────────┘ ││ ││ ┌─────────────────────┐ ││ │ 服务器证书 │ ││ │ Server Certificate │ ││ │ (sslPEMKeyFile) │ ││ └─────────────────────┘ ││ │├────────SSL握手─────────>││<────────SSL握手─────────┤│ │
配置建议
情况一:只需要服务器验证(最常见)
如果您不需要客户端证书认证,只需要:
BI Connector 端:
bash
./mongosqld \--sslMode requireSSL \--sslPEMKeyFile /data/mongosql/server.pem \...其他参数
Grafana 端:
yaml
TLS/SSL Mode: Require SSL Mode: Require TLS/SSL Client Certificate: (留空) TLS/SSL Client Key: (留空) TLS/SSL CA Cert: (如果需要,上传CA证书) TLS/SSL Skip Verify: true # 如果是自签名证书
情况二:需要双向SSL认证(更安全)
如果需要客户端证书:
-
生成客户端证书:
bash
# 为Grafana生成客户端证书 openssl genrsa -out grafana-client.key 2048 openssl req -new -key grafana-client.key -out grafana-client.csr openssl x509 -req -days 365 -in grafana-client.csr -CA ca.crt -CAkey ca.key -out grafana-client.crt
-
BI Connector 端启用客户端验证:
bash
./mongosqld \--sslMode requireSSL \--sslPEMKeyFile /data/mongosql/server.pem \--sslCAFile /path/to/ca.crt \ # 用于验证客户端证书的CA--sslAllowConnectionsWithoutCertificates false \...其他参数
-
Grafana 端配置客户端证书:
yaml
TLS/SSL Mode: Require SSL Mode: Require TLS/SSL Client Certificate: (上传grafana-client.crt) TLS/SSL Client Key: (上传grafana-client.key) TLS/SSL CA Cert: (上传ca.crt)
检查您的当前配置
bash
# 检查BI Connector是否要求客户端证书 ps aux | grep mongosqld | grep -E "(sslCAFile|sslAllowConnectionsWithoutCertificates)"# 测试连接是否需要客户端证书 openssl s_client -connect 39.96.26.253:3307 -state -debug
推荐做法
对于大多数情况,您只需要情况一的配置(只有服务器证书)。
除非您有特殊的安全要求,否则不需要配置客户端证书。先从简单的配置开始:
-
BI Connector 使用
--sslPEMKeyFile
-
Grafana 中只设置
TLS/SSL Mode: Require
-
客户端证书相关字段留空
这样应该就能解决连接问题。如果还有问题,可能是证书本身的问题(比如格式、加密算法等)。