一、概述
以下是Zabbix环境的部署组件(Zabbix 6.0 LTS + RHEL 8.5 + Postgresql + TimeScaleDB + Nginx),默认情况下Zabbix Web使用http协议,本次将启用SSL证书实现HTTPS访问。
二、证书准备
在实现HTTPS访问之前,需要有SSL证书,获取证书的途径:
- 自行创建,通过Openssl生成证书
- 通过各大云计算厂商申请,比如阿里云、腾讯云、华为云,一般提供为期一年的免费SSL证书,并提供各种web应用的SSL证书部署方法
因使用了DNSPod服务,有腾讯云的账号,因此本文采用通过腾讯云申请SSL证书。参考官方文档(域名型(DV)免费 SSL 证书申请流程):域名型(DV)免费 SSL 证书申请流程。获取Nginx的证书文件:
从下载的压缩包中获取crt证书文件、key私钥文件,上传至Nginx所在服务器
[root@localhost ~]# cd /etc/nginx/
[root@localhost ~]# mkdir cert
[root@localhost ~]# cd cert
[root@localhost cert]# ls
zbx.xxx.com_bundle.crt zbx.xxx.com.key
三、修改Nginx配置文件
[root@localhost cert]# cd ../conf.d/
[root@localhost conf.d]# vim zabbix.conf
server {
listen 80;
server_name zbx.xxx.com;
#将默认80端口的请求重定向为HTTPS
return 301 https://$host$request_uri;
}
# 新增SSL部分配置
server {
# SSL访问端口号为443
listen 443 ssl http2;
# 填写绑定证书的域名
server_name zbx.xxx.com;
# 证书文件名称
ssl_certificate "/etc/nginx/cert/zbx.xxx.com_bundle.crt";
#私钥文件名称
ssl_certificate_key "/etc/nginx/cert/zbx.xxx.com.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
...其他默认...
}
# Nginx配置文件语法检查,successful即可
[root@localhost conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# 重启Nginx服务,无报错即可
[root@localhost nginx]# systemctl restart nginx
四、测试
输入https://ip 或 https://zbx.xxx.com