Zabbix recomienda usar el servidor nginx, que tiene un mayor rendimiento. Para cumplir con el acceso seguro, ahora se debe configurar https, principalmente para configurar el módulo ssl de nginx y generar el archivo de certificado correspondiente a zabbix-server
Zabbix 5.0 se ha instalado antes y el entorno de configuración seleccionado es el siguiente:
Para conocer el método de instalación detallado, consulte el documento oficial:
https://www.zabbix.com/download?zabbix=5.0&os_distribution=centos&os_version=7&db=mysql&ws=nginx
Tenga en cuenta que la versión de nginx que utilicé no es coherente con la versión recomendada, configure nginx de acuerdo con la situación real
Instalación del módulo SSL de Nginx
Compruebe si nginx instala el módulo http_ssl_module.
/usr/sbin/nginx -V
Si aparece configurar argumentos: --with-http_ssl_module, está instalado
Yo uso nginx instalado por yum, con su propio módulo ssl. Debido a que nginx no puede actualizar módulos dinámicamente, cuando necesita cargar un módulo, debe recompilarlo e instalarlo.
Cada vez que agrega un nuevo módulo, debe agregar el módulo previamente compilado al parámetro de configuración
Cada vez que agrega un nuevo módulo, primero debe registrar la configuración anterior.
Hay muchos tutoriales en línea para compilar e instalar nginx.
Utilice opnenssl para generar un certificado
Puede solicitar un certificado de forma gratuita o de pago en un gran fabricante de computación en la nube. A continuación se muestra cómo Alibaba Cloud puede solicitar un certificado de forma gratuita
https://common-buy.aliyun.com/?spm=5176.15089375.4329286700.5.33ca1232so4ULs&commodityCode=cas#/buy El
certificado generalmente es válido durante aproximadamente un año.
Sin embargo, el certificado debe estar vinculado al nombre de dominio y debe revisarse estrictamente. No es adecuado para nuestra intranet.
También podemos usar openssl para generar información de certificados de forma gratuita, pero es un poco problemático.
Cree un nuevo directorio para guardar la información del certificado
mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
Utilice la herramienta openssl para generar una clave privada RSA
Primero confirme si se ha instalado la herramienta openssl
openssl version
Por lo general, centos viene con herramientas openssl, de lo contrario, descárguelas e instálelas desde el sitio web oficial http://www.openssl.org.
Generar clave privada rsa
openssl genrsa -des3 -out server.key 2048
Como arriba: des3 es el algoritmo, fuerza de 2048 bits (para confidencialidad). server.key es el nombre del archivo de claves -out significa: la ruta y el nombre del archivo generado.
Frase de cifrado, lo que configuro aquí es 123456
Ver la clave privada generada
openssl rsa -text -in server.key
Ver clave generada
cat server.key
Crear un archivo CSR de solicitud de firma de certificado
Archivo CSR (Certificate Signing Request) Antes de solicitar un certificado digital, se debe generar el archivo clave y el archivo CSR del certificado. El archivo CSR es el archivo original de su certificado de clave pública, que contiene información del servidor e información de la unidad, y debe enviarse al centro de certificación de CA para su revisión.
Usa el siguiente comando
openssl req -new -key server.key -out server.csr
Descripción:
Enter pass phrase for server.key: #123456
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN # 输入国家代码,中国填写 CN
State or Province Name (full name) []:hubei #省份
Locality Name (eg, city) [Default City]:wuhan #城市
Organization Name (eg, company) [Default Company Ltd]:ctbt #公司名 瞎填
Organizational Unit Name (eg, section) []:ops #部门瞎填
Common Name (eg, your name or your server's hostname) []:172.31.208.128 #域名,没有域名,我用IP地址
Email Address []:[email protected] #邮箱
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: #无需填写
Después de la operación anterior, se generarán los siguientes dos archivos en el directorio actual:
server.key server.csr
Ver archivo csr
openssl req -text -in server.csr -noout
Generar certificado CA
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
El significado de x509: el significado del formato especificado -
en: el significado del archivo de solicitud especificado -
signkey: autofirmado
-días: período válido, configuro 3650 días, diez años
server.crt es la información del certificado del servidor
Despegue la frase de contraseña de PEM
Después de configurar la frase de contraseña PEM (contraseña encriptada) de la clave, esta situación puede ser que la configuración de la contraseña se escriba en el archivo de clave al configurar la clave privada, lo que hace que la serie de servidores Nginx / Apache requiera Ingresar frase de contraseña PEM al comenzar. Como resultado, el inicio falla. Lo que tenemos que hacer es quitar la contraseña y usar el siguiente comando de OpenSSL para generar el archivo server.key.unsecure
openssl rsa -in server.key -out server.key.unsecure
Se recomienda que no se requiera un entorno simple para agregar una contraseña a la clave del certificado o algo, lo cual es propenso a problemas
Debido a que https es generalmente autenticación unidireccional, el entorno simple no necesita usar autenticación bidireccional, no es necesario generar un certificado de cliente
Si necesita generar un certificado de cliente, es similar a generar un certificado de CA
openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.csr
openssl x509 -req -days 3650 -in client.csr -signkey client.key -out client.crt
nginx configure ssl
Primero edite /etc/nginx/ngnix.conf, comente el servidor 80, para que no acceda a zabbix-web a través del puerto 80
cd /etc/nginx/
cp nginx.conf nginx.conf.bak
vim nginx.conf
Haga una copia de seguridad del archivo de configuración antes de modificarlo
Use el comando nginx -t para verificar si la sintaxis del archivo de configuración es correcta después de la modificación
Configure zabbix.conf en la ruta /etc/nginx/conf.d, que es la configuración de https
touch /etc/nginx/conf.d/zabbix.conf
Edite de la siguiente manera
Los siguientes son los archivos de configuración clave
server {
listen 80;
server_name 172.31.208.128;
return 301 https://172.31.208/128$request_uri;
}
server {
listen 443 ssl;
ssl_certificate ssl/server.crt; #证书文件
#ssl_certificate_key ssl/server.key; #密钥文件
ssl_certificate_key ssl/server.key.unsecure; #剥离密码的密钥文件,如果没有对密钥加密,直接使用server.key
ssl_session_timeout 5m; #缓存有效期
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用加密算法
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #安全连接的可选加密协议
ssl_prefer_server_ciphers on; #使用服务器的首选算法
root /usr/share/zabbix;
index index.php;
Luego use nginx -t para verificar la sintaxis y reinicie nginx si no hay ningún problema
Si nginx se inicia normalmente, el acceso a zabbix nuevamente es usar https
Verifique la información del certificado
En este punto, el certificado está instalado.
No sé si es útil, pero el cliente me ha engañado. El maldito NSFOCUS nunca más dirá que mi sitio web es inseguro, jajaja