Grafana 内网地址支持 HTTPS

最近更新时间:2026-04-27 15:37:52

我的收藏

实践背景

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

前提条件

创建 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.gz
cd 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。
make
make 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
注意:
如果检查不通过,请根据错误提示修改配置文件。常见错误原因包括:
证书文件不存在或路径错误。
证书格式不正确(需为 PEM 格式)。
配置文件语法错误(如缺少分号、括号不匹配)。
配置中包含非英文标点符号。

步骤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 证书有效期,在证书过期前及时更换。