Найти тему

Zabbix 5.0 — настройка SSL в nginx

По умолчанию nginx для Zabbix 5.0 LTS настроен на работу по протоколу HTTP. Настроим HTTPS.

Нам понадобятся SSL сертификаты

SSL сертификаты

SSL сертификат можно купить, можно сделать самоподписанные сертификаты. Я же буду делать SSL сертификаты, подписанные корпоративным центром сертификации.

Генерирую CSR и KEY для SSL сертификатов с помощью подсистемы Linux. Извините, работаю на винде.

Windows 10 — генерация CSR и KEY для SSL сертификатов с помощью подсистемы Linux

В процессе работы мне понадобилось сконвертировать цепочку P7B в PEM.

Windows — конвертация P7B в PEM с помощью подсистемы Linux

-2

Создаём папку /etc/zabbix/ssl для хранения ключей, в ней размещаем файлы ключа и приватного сертификата:

mkdir /etc/zabbix/sll
cd /etc/zabbix/sll
touch zabbix-cert.pem
touch zabbix-key.pem
-3

Содержимое сертификата zabbix.pem и ключа zabbix.key копируем в созданные файлы zabbix-cert.pem и zabbix-key.pem.

Поскольку центр сертификации корпоративный, понадобится добавить корневые сертификаты на Zabbix сервер:

Добавление корневых сертификатов в Ubuntu 18.04

Правим конфигурационный файл /etc/zabbix/nginx.conf:

server {
listen 80;
listen 443 ssl;
server_name example.com;

charset utf-8;

ssl_certificate /etc/zabbix/ssl/zabbix-cert.pem;
ssl_certificate_key /etc/zabbix/ssl/zabbix-key.pem;

if ($scheme != "https") {
return 301 https://$host$request_uri;
}

root /usr/share/zabbix;

index index.php;

location = /favicon.ico {
log_not_found off;
}

location / {
try_files $uri $uri/ =404;
}

location /assets {
access_log off;
expires 10d;
}

location ~ /\.ht {
deny all;
}

location ~ /(api\/|conf[^\.]|include|locale) {
deny all;
return 404;
}

location ~ [^/]\.php(/|$) {
fastcgi_pass unix:/var/run/php/zabbix.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;

fastcgi_param DOCUMENT_ROOT /usr/share/zabbix;
fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;

include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
}

Теперь при входе на HTTP версию сайта будет происходить редирект на HTTPS версию.

Перезапускаем сервисы:

systemctl restart zabbix-server zabbix-agent nginx php7.2-fpm

Zabbix сервер работает по HTTPS.

-4

Источник:
https://internet-lab.ru/zabbix_5_0_nginx_ssl

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.