Grafana 服务 Grafana 内网地址支持 HTTPS

当需要通过 HTTPS 协议安全访问 Grafana 内网地址时,由于 Grafana 服务默认仅提供 HTTP 内网访问,直接访问存在数据传输安全风险。通过在同 VPC 的云服务器上自建 Nginx 反向代理,可以为 Grafana 内网地址提供 HTTPS 支持,保障数据传输的安全性。

相关产品
Grafana 服务 产品页,含版本规格、价格与购买入口。

一、前提条件

·已 创建 Grafana 实例,并获取内网访问地址(如 http://10.0.0.1:3000)。

·已拥有一台与 Grafana 实例同 VPC 的 云服务器(CVM)。

·已 获取 SSL 证书文件(.pem 证书文件和 .key 私钥文件)。

二、解决方案

在与 Grafana 同 VPC 的云服务器上安装 Nginx,配置 SSL 证书并设置反向代理,将 HTTPS 请求转发到 Grafana 的 HTTP 内网地址,从而实现 HTTPS 访问。

三、步骤1:安装 Nginx

1. 登录云服务器,下载并解压 Nginx 源码包,此处以 nginx-1.24.0为例进行介绍。

# 下载 Nginx 源码包wget https://nginx.org/download/nginx-1.24.0.tar.gz# 将安装包复制到目标目录并解压(目录可根据实际情况调整)mkdir -p /usr/local/nginx && cp nginx-1.24.0.tar.gz /usr/local/nginx/cd /usr/local/nginx/tar -zxvf nginx-1.24.0.tar.gzcd nginx-1.24.0/

2. 安装 SSL 相关依赖。

yum -y install make zlib-devel gcc-c++ libtool openssl openssl-devel

3. 配置编译参数,启用 SSL 模块。

./configure \\ –user=nobody \\ –group=nobody \\ –prefix=/usr/local/nginx \\ –with-http_stub_status_module \\ –with-http_gzip_static_module \\ –with-http_realip_module \\ –with-http_sub_module \\ –with-http_ssl_module # 启用 SSL 模块,支持 HTTPS

4. 编译并安装 Nginx。

makemake install

四、步骤2:准备 SSL 证书

将 SSL 证书文件上传到云服务器的 /usr/local/nginx/ssl 目录,文件命名如下:

文件路径 说明
/usr/local/nginx/ssl/cert.pem SSL 证书文件
/usr/local/nginx/ssl/cert.key SSL 私钥文件

# 创建证书目录(如不存在)mkdir -p /usr/local/nginx/ssl# 将证书和私钥文件上传至该目录# /usr/local/nginx/ssl/cert.pem# /usr/local/nginx/ssl/cert.key

注意:请确保证书文件为 PEM 格式,且证书与私钥匹配。

五、步骤3:配置 Nginx 反向代理

修改 Nginx 配置文件 /usr/local/nginx/conf/nginx.conf,在 http 块中修改以下 HTTPS server 配置:

server { listen 443 ssl; server_name grafana-xxxxxx.grafana.tencent-cloud.com; # 替换为你的 Grafana 访问域名 ssl_certificate /usr/local/nginx/ssl/cert.pem; # SSL 证书路径 ssl_certificate_key /usr/local/nginx/ssl/cert.key; # SSL 私钥路径 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { # CORS 跨域配置 add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; # 传递真实客户端信息 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://10.0.0.1:3000; # 替换为你的 Grafana 内网地址 }}

关键配置说明:

参数 说明
server_name 你的 Grafana 访问域名,需替换为实际域名
ssl_certificate SSL 证书文件路径
ssl_certificate_key SSL 私钥文件路径
ssl_ciphers 加密套件配置,HIGH:!aNULL:!MD5 表示使用高强度加密并排除不安全算法
proxy_pass Grafana 内网地址,需替换为实际的内网 IP 和端口

六、步骤4:检查配置

执行以下命令检查 Nginx 配置文件语法是否正确:

cd /usr/local/nginx/sbin/./nginx -t

注意:如果检查不通过,请根据错误提示修改配置文件。常见错误原因包括:

七、步骤5:启动 Nginx

cd /usr/local/nginx/sbin/./nginx

启动后,你即可通过 https://<你的域名> 访问 Grafana 服务。

注意:说明:

注意:如后续修改了 Nginx 配置,可使用 ./nginx -s reload 命令重新加载配置,无需重启服务。

八、配置建议

·建议将 SSL 私钥文件权限设置为 600,仅允许 root 用户读取,提升安全性。

·如你配置了自定义域名并使用 SSO 登录,请在 Grafana 配置中将 server.root_url 设置为 HTTPS 域名,避免 SSO 登录异常。

·建议定期检查 SSL 证书有效期,在证书过期前及时更换。

赞 (0)
上一篇 4天前
下一篇 4天前