Aller au contenu principal

Sécuriser les connexions de Broker à la base de données avec TLS

Centreon Broker prend en charge les connexions sécurisées TLS 1.2/1.3 vers les bases de données MySQL/MariaDB, permettant de chiffrer les communications entre Centreon Broker et les serveurs de base de données.

Paramètres de configuration

Les paramètres suivants peuvent être ajoutés à toute configuration de sortie de base de données (unified_sql, sql, storage) dans votre fichier de configuration Centreon Broker :

ParamètreTypeRequisDéfautDescription
db_ssl_enabledbooléenNonfalseActiver SSL/TLS pour la connexion à la base de données
db_ssl_cachaîneNon-Chemin vers le fichier de certificat de l'Autorité de Certification (CA) au format PEM
db_ssl_certchaîneNon-Chemin vers le fichier de certificat client au format PEM
db_ssl_keychaîneNon-Chemin vers le fichier de clé privée du client au format PEM
db_tls_versionchaîneNonTLSv1.3Version(s) du protocole TLS à utiliser (ex. : TLSv1.2, TLSv1.3, TLSv1.2,TLSv1.3)
db_ssl_verify_certbooléenNontrueActiver la vérification du certificat (vérification d'identité)

Exemples de configuration

Configuration TLS minimale (authentification serveur uniquement)

Pour vérifier uniquement l'identité du serveur sans authentification par certificat client :

{
"centreon-broker-unified-sql": {
"type": "unified_sql",
"db_type": "mysql",
"db_host": "database.example.com",
"db_port": "3306",
"db_user": "centreon",
"db_password": "password",
"db_name": "centreon_storage",
"db_ssl_enabled": "true",
"db_ssl_ca": "/etc/centreon-broker/ssl/ca-cert.pem",
"db_ssl_verify_cert": "true"
}
}

TLS sans vérification de certificat

{
"centreon-broker-unified-sql": {
"type": "unified_sql",
"db_type": "mysql",
"db_host": "database.example.com",
"db_port": "3306",
"db_user": "centreon",
"db_password": "password",
"db_name": "centreon_storage",
"db_ssl_enabled": "true",
"db_ssl_verify_cert": "false"
}
}

Configuration du serveur MariaDB/MySQL

Configurez votre serveur de base de données pour prendre en charge les connexions SSL.

Éditez /etc/mysql/mariadb.conf.d/99-tls.cnf :

[mysqld]
ssl_ca=/chemin/vers/ca-cert.pem
ssl_cert=/chemin/vers/server-cert.pem
ssl_key=/chemin/vers/server-key.pem

Pour imposer SSL à des utilisateurs spécifiques, exécutez la commande suivante dans la console MySQL/MariaDB :

  • Authentification serveur uniquement : ALTER USER 'centreon'@'%' REQUIRE SSL;
  • TLS mutuel (certificat client requis) : ALTER USER 'centreon'@'%' REQUIRE X509;

Redémarrez le service de base de données après toute modification de la configuration :

systemctl restart mariadb

Vérifier la configuration SSL du serveur

mysql -u root -p -e "SHOW VARIABLES LIKE '%ssl%';"

La variable have_ssl doit être définie à YES.

Vérification

Vérifier les logs de Broker

Après avoir activé SSL, vérifiez les logs de Centreon Broker pour les messages relatifs à SSL :

grep -i ssl /var/log/centreon-broker/central-broker-master.log

Entrée de log attendue :

[2026-02-17 10:00:00] [info] SSL/TLS enabled for database connection

Tester la connexion manuellement

mysql --ssl-ca=/chemin/vers/ca-cert.pem \
--ssl-cert=/chemin/vers/client-cert.pem \
--ssl-key=/chemin/vers/client-key.pem \
-h <hôte> -u <utilisateur> -p