Gérer le certificat NSClient pour l'API Rest
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.
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...
Sélectionnez la connexion précédente sur le serveur Web NSClient
Supprimez ce certificat
Tentez de nouveau la connexion sur le nouveau serveur Web, vous pourrez ajouter l'exception de sécurité pour accéder à la page.
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
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.