Vous êtes ici:

Menu

Gérer le certificat NSClient pour l'API Rest

logo_nsclientSi vous avez utilisé l'API Rest de NSClient, vous avez été certainement confrontés à la problématique des certificats surtout si vous avez plusieurs agents en fonctionnement. En effet, le certificat livré avec NSClient est identique à chaque installation. Votre navigateur, surtout la dernière version de Firefox, vous empêchera de vous connecter à vos agents NSClient.
Pour la première connexion, vous aurez droit à un message d'avertissement. Normal, me direz-vous, car celui-ci ne peut pas authentifier ce certificat. Il suffira d'ajouter une exception pour régler le problème. Mais le souci viendra lors d'une deuxième connexion à un autre agent, votre navigateur va reconnaître le même certificat mais pour un serveur différent. Votre butineur préféré conclura à une usurpation d'identité et donc à un site malveillant en vous empêchant de vous connecter comme le montre cette copie d'écran.

cert_nsclient01

Pour remédier à ce souci, je vous propose deux solutions. La première solution est une solution de contournement provisoire et la seconde est la création d'un certificat propre à votre agent qui sera plus pérenne.

Première solution


Lorsque vous avez l'affichage d'échec de la connexion sécurisée SEC_ERROR_REUSED_ISSUER_AND_SERIAL, il faudra supprimer le certificat dans le gestionnaire des certificats de votre navigateur. Pour cela sélectionnez le menu Options de votre navigateur. Section Vie privée et sécurité, certificats. Cliquez sur Afficher les certificats...

cert_nsclient02

Sélectionnez la connexion précédente sur le serveur Web NSClient

cert_nsclient03

Supprimez ce certificat

cert_nsclient04

Tentez de nouveau la connexion sur le nouveau serveur Web, vous pourrez ajouter l'exception de sécurité pour accéder à la page.

cert_nsclient05

Cette solution est relativement simple à réaliser mais n'est franchement pas pratique pour une connexion pérenne surtout si vous avez un nombre important d'agents NSClient. Il faudra opter pour la deuxième solution.

Deuxième solution


Nous allons créer un certificat propre à chaque connexion Web pour vos agents NSClient. Nous devons créer un certificat PEM. Le plus simple pour ma part, est de le réaliser avec un serveur Linux. Voyons comment le réaliser. Connectez-vous en invite de commande et créez un dossier pem
mkdir pem
cd pem

Créez la clé privée et le certificat avec cette commande
openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem

Remplissez les champs comme cet exemple en fonction de vos besoins
Generating a 2048 bit RSA private key
........................+++
........................................+++
writing new private key to 'key.pem'
-----
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]:FR
State or Province Name (full name) []:Sarthe
Locality Name (eg, city) [Default City]:Le Mans
Organization Name (eg, company) [Default Company Ltd]:Maison
Organizational Unit Name (eg, section) []: Demo Centreon
Common Name (eg, your name or your server's hostname) []:win2008r2
Email Address []:eric.coquard@sugarbug.fr

Vous pouvez vérifier votre certificat avec la commande suivante
openssl x509 -text -noout -in certificate.pem

Vous avez dans le dossier pem, deux fichiers certificate.pem et key.pem. Nous allons les concaténer pour NSClient.
cat key.pem > /root/certificate.pem
cat certificate.pem >> /root/certificate.pem

Copiez ce dernier fichier dans le dossier dédié au certificat dans le serveur Windows

cert_nsclient06

Relancez NSClient

net stop nscp
net start nscp

Vérifiez que vous n'avez pas d'erreur dans votre fichier log et tentez une connexion Web. Vous devrez ajouter une exception et vous connecter sans problème.

cert_nsclient07


blog comments powered by Disqus
 Vous êtes ici: