Docker Compose 是一种非常方便的在系统中部署 ZABBIX 的方式,https://github.com/zabbix/zabbix-docker 项目中已经提供了非常完整的 DockerCompose 配置文件,我们只要简单修改即可使用。

网上大多数的教程对于给 ZABBIX 配置 SSL 都是推荐前面挂一个 NGINX,在这个 NGINX 上安装证书。实际上,ZABBIX 的镜像中已经有 NGINX 了,并且官方已经预留了相关配置,主要证书文件在,就可以直接启用 SSL。

本文以 zabbix7 的 nginx 镜像为例。

根据 ZABBIX 的文档,我们需要将 dhparam.pem ssl.key 和 ssl.cert 放在 zbx_env/etc/ssl/nginx 目录下。

创建 dhparam.pem

1
sudo openssl dhparam -out dhparam.pem 2048

证书 ssl.key 和 ssl.cert 就自备吧

重新启动 ZABBIX

1
docker compose -f ./docker-compose_v3_alpine_pgsql_latest.yaml up

如果启动之后,发现无法访问 ZABBIX,可以 docker exec -it zabbix-docker-zabbix-web-nginx-pgsql-1 /bin/bash 进到容器内,nginx -t 看具体报错是什么。

如果是下面的报错:

[emerg] cannot load certificate key /etc/ssl/nginx/ssl.key: BIO_new_file() failed (SSL: error:8000000D:system library::Permission denied

可以执行以下命令修改权限来解决:

1
2
3
chmod 644 ssl.key
chmod 644 ssl.cert
chmod 644 dhparam.pem