Zabbix utilise un certificat SSL pour implémenter la connexion https

Zabbix recommande d'utiliser le serveur nginx, qui a des performances plus élevées. Afin de garantir un accès sécurisé, https doit maintenant être configuré, principalement pour configurer le module ssl de nginx, et pour générer un fichier de certificat correspondant à zabbix-server

Zabbix5.0 a déjà été installé et l'environnement de configuration sélectionné est le suivant:

Zabbix utilise un certificat SSL pour implémenter la connexion https

Pour la méthode d'installation détaillée, veuillez vous référer au document officiel:
https://www.zabbix.com/download?zabbix=5.0&os_distribution=centos&os_version=7&db=mysql&ws=nginx

Notez que la version de nginx que j'ai utilisée est incompatible avec la version recommandée, veuillez configurer nginx en fonction de la situation réelle

Installation du module SSL Nginx

Vérifiez si nginx installe le module http_ssl_module.

/usr/sbin/nginx -V

Si configurez les arguments: --with-http_ssl_module apparaît, il est installé

Zabbix utilise un certificat SSL pour implémenter la connexion https

J'utilise nginx installé par yum, avec son propre module ssl. Comme nginx ne peut pas mettre à jour dynamiquement les modules, lorsque des modules doivent être chargés, ils doivent être recompilés et installés.

Chaque fois que vous ajoutez un nouveau module, vous devez ajouter le module précédemment compilé au paramètre configure.
Chaque fois que vous ajoutez un nouveau module, vous devez d'abord enregistrer la configuration précédente.

Il existe de nombreux tutoriels en ligne pour compiler et installer nginx.

Utilisez opnenssl pour générer un certificat

Vous pouvez demander un certificat gratuitement ou payant auprès d'un grand fabricant de cloud computing. Voici comment Alibaba Cloud peut demander un certificat gratuitement
https://common-buy.aliyun.com/?spm=5176.15089375.4329286700.5.33ca1232so4ULs&commodityCode=cas#/buy Le
certificat est généralement valide pendant environ un an.
Cependant, le certificat doit être lié au nom de domaine et doit être strictement revu. Il ne convient pas à notre intranet.

Nous pouvons également utiliser openssl pour générer des informations de certificat gratuitement, mais c'est un peu gênant.

Créer un nouveau répertoire pour enregistrer les informations de certificat

mkdir /etc/nginx/ssl
cd /etc/nginx/ssl

Utilisez l'outil openssl pour générer une clé privée RSA

Vérifiez d'abord si l'outil openssl a été installé

openssl version

Zabbix utilise un certificat SSL pour implémenter la connexion https

En général, centos est livré avec des outils openssl, sinon, veuillez vous rendre sur le site officiel http://www.openssl.org pour télécharger et installer.

Générer la clé privée RSA

openssl genrsa -des3 -out server.key 2048

Comme ci-dessus: des3 est l'algorithme, force de 2048 bits (pour la confidentialité). server.key est le nom du fichier de clé -out signifie: le chemin et le nom du fichier généré.

Zabbix utilise un certificat SSL pour implémenter la connexion https

Phrase de cryptage, ce que je configure ici est 123456

Afficher la clé privée générée

openssl rsa -text -in server.key

Zabbix utilise un certificat SSL pour implémenter la connexion https

Afficher la clé générée

cat server.key

Zabbix utilise un certificat SSL pour implémenter la connexion https

Créer un fichier CSR de demande de signature de certificat

Fichier CSR (Certificate Signing Request) Avant de demander un certificat numérique, le fichier clé et le fichier CSR du certificat doivent être générés. Le fichier CSR est le fichier d'origine de votre certificat de clé publique, qui contient des informations sur le serveur et des informations sur l'unité, et doit être soumis au centre de certification de l'autorité de certification pour examen.

Utilisez la commande suivante

openssl req -new -key server.key -out server.csr

Zabbix utilise un certificat SSL pour implémenter la connexion https
La description:

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 []:  #无需填写

Après l'opération ci-dessus, les deux fichiers suivants seront générés dans le répertoire courant:

server.key server.csr
Zabbix utilise un certificat SSL pour implémenter la connexion https

Afficher le fichier csr

openssl req -text -in server.csr -noout

Zabbix utilise un certificat SSL pour implémenter la connexion https

Générer un certificat CA

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

La signification de x509: la signification du format spécifié -
in: la signification du
fichier de demande spécifié - signkey: auto-signé

-jours: période valide, je configure 3650 jours, dix ans

Zabbix utilise un certificat SSL pour implémenter la connexion https

server.crt est les informations de certificat du serveur

Décollez la phrase de passe PEM

Après avoir défini la phrase de passe PEM (mot de passe crypté) de la clé, cette situation peut être que le paramètre de mot de passe est écrit dans le fichier de clé lors de la définition de la clé de clé privée, ce qui oblige la série de serveurs Nginx / Apache à exiger la saisie de la phrase de passe PEM au démarrage. En conséquence, le démarrage échoue. Nous devons supprimer le mot de passe et utiliser la commande OpenSSL suivante pour générer le fichier server.key.unsecure

openssl rsa -in server.key -out server.key.unsecure

Il est recommandé de ne pas avoir besoin d'un environnement simple pour ajouter un mot de passe à la clé de certificat ou quelque chose qui est sujet à des problèmes

Étant donné que https est généralement une authentification unidirectionnelle, un environnement simple n'a pas besoin d'utiliser l'authentification bidirectionnelle, pas besoin de générer un certificat client

Si vous devez générer un certificat client, cela revient à générer un certificat 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 configurer ssl

Commencez par modifier /etc/nginx/ngnix.conf, commentez le serveur 80, afin de ne pas accéder à zabbix-web via le port 80

cd /etc/nginx/
cp nginx.conf nginx.conf.bak
vim nginx.conf

Sauvegardez le fichier de configuration avant la modification

Zabbix utilise un certificat SSL pour implémenter la connexion https

Utilisez la commande nginx -t pour vérifier si la syntaxe du fichier de configuration est correcte après modification

Zabbix utilise un certificat SSL pour implémenter la connexion https

Configurez zabbix.conf sous le chemin /etc/nginx/conf.d, qui est la configuration de https

touch /etc/nginx/conf.d/zabbix.conf

Modifiez comme suit

Zabbix utilise un certificat SSL pour implémenter la connexion https

Voici les principaux fichiers de configuration

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;

Ensuite, utilisez nginx -t pour vérifier la syntaxe et redémarrez nginx s'il n'y a pas de problème

Si nginx démarre normalement, accéder à nouveau à zabbix consiste à utiliser https

Zabbix utilise un certificat SSL pour implémenter la connexion https

Zabbix utilise un certificat SSL pour implémenter la connexion https

Vérifier les informations du certificat

Zabbix utilise un certificat SSL pour implémenter la connexion https

Zabbix utilise un certificat SSL pour implémenter la connexion https

À ce stade, le certificat est installé

Je ne sais pas si c'est utile, mais le client m'a dupé. Le fichu NSFOCUS ne dira plus jamais que mon site Web n'est plus sécurisé, hahaha

Je suppose que tu aimes

Origine blog.51cto.com/11555417/2545852
conseillé
Classement