Citrix XenServer - Sécurisation de la connexion via SSL (protocole HTTPS)

Page 1 / 1

XenServer est le serveur de virtualisation de Citrix qui peut être utilisé par d'autres programmes de Citrix comme "Citrix Studio (installé avec XenApp et XenDesktop". Pour se connecter au serveur de virtualisation, Citrix Studio utilise le protocole http ou https (sécurisé avec SSL). Pour vous permettre d'utiliser une connexion sécurisée entre Citrix Studio et XenServer, nous allons sécuriser XenServer en utilisant le protocole https.

 

Pré-requis :

  1. Créer le certificat et la clé privée avec OpenSSL
  2. Sécuriser XenServer avec ce certificat généré

1. Créer le certificat et la clé privée avec OpenSSL

Avant de commencer, assurez-vous d'être connecté avec un compte utilisateur qui vous permet de demander et de signer des certificats avec votre autorité de certification.
Note : Si besoin, connectez-vous avec le compte Administrateur sur le serveur où l'autorité de certification est installée.

Pour commencer, téléchargez "OpenSSL", décompressez le fichier zip téléchargé et allez dans le dossier "bin".
Pour éviter qu'OpenSSL vous dise "WARNING: can't open config file: C:/OpenSSL/openssl.cnf", copiez le contenu du dossier "bin" dans le dossier "C:\OpenSSL" (que vous devez créer).

Pour commencer, créer une demande de certificat et une clé privée.

Infos :
-newkey rsa:2048 : Crée une demande de certificat et une clé privée de la taille indiquée. Dans ce cas-ci : 2048 bits.
-keyout xenserver1prvkey.pem : Nom du fichier sous lequel la clé privée sera sauvegardée
-nodes : Indique de ne pas protéger la clé privée par mot de passe. Ce qui évite que le serveur la demande au démarrage.
-out xenserver1.req : Nom du fichier sous lequel la demande de certificat sera sauvegardée
-subj /CN=xenserver.informatiweb.lan/O=InformatiWeb/C=BE/ST=GA/L=Liège : Permet de spécifier les attributs à indiquer dans le certificat.
CN : Nom commun. Dans cas-ci, le nom de domaine pointant sur l'adresse IP du serveur XenServer.
O : Organisation
C : Pays
ST : Etat (Optionel)
L : Ville (ou province, si applicable)

Batch

openssl req -newkey rsa:2048 -keyout xenserver1prvkey.pem -nodes -out xenserver1.req -subj /CN=xenserver.informatiweb.lan/O=InformatiWeb/C=BE/ST=GA/L=Liège

Si tout se passe bien, ceci s'affichera :

Plain Text

Loading 'screen' into random state - done
Generating a 2048 bit RSA private key
..................................+++
..............................+++
writing new private key to 'xenserver1prvkey.pem'
-----

Ensuite, soumettez votre demande à votre autorité de certification sous Windows Server.

Infos :
-submit : Soumet la demande à l'autorité souhaitée.
-binary : Utilise l'encodage binaire pour le certificat.
-attrib "CertificateTemplate:WebServer" : Permet de spécifier le modèle de certificat à utiliser sur votre autorité de certification
-config "AD-SERVER\InformatiWeb CA" : Permet de spécifier l'autorité de certification qui signera votre certificat. Syntaxe : [Nom (nom NETBIOS) du serveur sous Win. Server]\[Nom de l'autorité de certification (Nom commun de l'autorité)]
xenserver1.req : Fichier contenant la requête de certificat.
xenserver1.cer : Nom du fichier sous lequel le certificat sera enregistré.

Batch

certreq -submit -binary -attrib "CertificateTemplate:WebServer" -config "AD-SERVER\InformatiWeb CA" xenserver1.req xenserver1.cer

Si tout se passe bien, ceci s'affichera :

Plain Text

Identifiant de requête : 4
IDDemande : « 4 »
Certificat récupéré(Délivré) Délivré

Convertissez le certificat au format PEM (linux).

Batch

openssl x509 -inform der -in xenserver1.cer -out xenserver1.pem

Fusionnez le certificat et la clé privée dans un fichier au format "pkcs12" (extension .pfx).

Infos :
-passout pass:iwpass : Permet de spécifier un mot de passe pour protéger le certificat et la clé privée.

Batch

openssl pkcs12 -export -inkey xenserver1prvkey.pem -in xenserver1.pem -out xenserver1.pfx -passout pass:iwpass

Convertissez le fichier PFX (format Microsoft) au format PEM (format Linux).

Infos :
-password pass:iwpass : Permet de spécifier le mot de passe qui protège le certificat et la clé privée.

Batch

openssl pkcs12 -in xenserver1.pfx -out xenserver1keypair.pem -nodes -password pass:iwpass

Votre dossier "OpenSSL" devrait ressembler à ceci :

 

2. Sécuriser XenServer avec ce certificat généré

Pour transférer le certificat sur le serveur XenServer, nous allons utiliser "WinSCP".
Note : Si vous le souhaitez, vous pouvez utiliser FileZilla en précisant 22 comme numéro de port.

Ouvrez "WinSCP" et connectez-vous au serveur XenServer sur le port 22 (SSH / SFTP).

Etant donné qu'il s'agit de votre 1ère connexion au serveur, cet avertissement s'affichera. Cliquez sur "Oui".

Naviguez dans le dossier où se trouve le certificat que vous avez généré, à gauche.
Et dans le dossier "/etc/xensource/", à droite.
Puis, renommez le certificat "xapi-ssl.pem" du serveur en "xapi-ssl.pem.original".

Copiez le nouveau certificat (xenserver1keypair.pem) sur le serveur.

Renommez ce nouveau certificat en "xapi-ssl.pem".

Modifiez les autorisations de ce fichier pour le mettre en lecture seul pour root uniquement.

Pour finir, allez dans la console de XenServer via XenCenter et redémarrez le service "xapissl" du serveur en tapant cette commande :

Bash

/etc/init.d/xapissl restart

Pour vérifier que votre certificat est bien installé, accédez à l'adresse : https://xenserver.informatiweb.lan

 

Procédure basée sur la documentation officielle de Citrix : How to Use OpenSSL with a Windows Certificate Authority to Generate XenServer Certificates