Pour accéder à mes Labs, j’utilise une Remote Desktop Gateway (RD Gateway) qui me permet de me connecter à l’ensemble des VM de mon infra. Pour ce faire, j’ai besoin d’un certificat SSL afin d’en sécuriser la connexion. Je vous propose de voir comment déployer un certificat SSL pour votre RD Gateway.
Générer votre CSR sur votre RD Gateway
Nous allons commencer par générer notre CSR (certificate request) sur le serveur RD Gateway. Pour ce faire, connectez-vous en RDP sur le serveur et démarrez l’application Internet Information Service (IIS) Manager. Il s’agit d’un composant des Administrative Tools. S’il n’est pas installé, installez-le depuis le Server Manager.
Une fois l’application ouverte, rendez-vous dans SSL Certificates.
Créez une nouvelle Certificate Request (CSR).
Renseignez toutes les informations nécessaires. N’oubliez pas que le champs « Common name » doit correspondre à l’URL d’accès que vous souhaitez sécuriser. Cliquez sur Next.
Pour le premier réglage, choisissez l’option par défaut. Pour le réglage Bit length, il est recommandé de choisir au minimum 2048. Pour ma part, j’ai envie de tester 4096 car c’est à priori supporté par DigitCert. Prenez le temps de vérifier avec votre fournisseur.
Enregistrez le contenu de votre CSR quelque part. Nous en aurons besoin pour la prochaine étape.
Générer votre certificat via DigitCert
Copiez dans votre presse-papier le contenu de votre CSR.
Allez ensuite dans l’interface de votre fournisseur de certificat SSL. Pour ma part, j’ai choisi un certificat de type GeoTrust Cloud DV – car c’est celui que je peux obtenir gratuitement. Adaptez votre choix en fonction du prix souhaité et de votre fournisseur d’accès.
Une fois le CSR collé, le nom de votre URL à sécuriser est automatiquement détecté. Si disponible, choisissez la durée de validité de votre certificat. Pour ma part, j’ai choisi 2 ans.
Vous devrez probablement définir le nom/prénom/mail de contact pour le certificat ainsi que la méthode de validation – DCV Verification Method. Il peut s’agir d’une entrée à créer dans votre DNS, la confirmation par mail, création d’une page web statique avec une code, etc.
Pour ma part, j’ai choisi de créer une entrée DNS pour confirmer que je suis bien le propriétaire de l’URL en question.
Il ne me reste plus qu’à me connecter à mon gestionnaire de domaine (dans mon cas OVH) et créer une nouvelle entrée TXT avec les informations demandées par DigitCert pour confirmer que je suis bien le propriétaire de ce nom de domaine.
Une fois que c’est bon, vous pouvez revenir sur votre espace perso sur DigitCert afin de confirmer l’action. En fonction du TTL que vous avez choisi pour votre domaine, vous devrez peut-être patienter un peu (en général c’est plutôt instantané).
Votre certificat va alors être généré avec tous les fichiers nécessaires pour procéder à l’installation sur votre RD Gateway.
Installer le certificat sur votre RD Gateway
Selon votre fournisseur, vous recevrez un fichier ZIP avec tous les fichiers ou bien il faudra télécharger tous les documents sur votre espace personnel. La génération peut parfois prendre un peu de temps.
Les certificats sont en général générés pour plusieurs types de serveurs Web en fonction de ce que vous souhaitez faire. Dans le cas de RD Gateway, prenez bien la version pour Microsoft IIS. Dans mon cas, je dispose de 2 certificats à intégrer dans ma bibliothèque/librairie de certificats :
- Un certificat associé à l’autorité de certification de DigitCert (Global Root CA)
- Le certificat que vous allez associer à votre service RDS.
Vous devrez importer les 2 certificats. Pour ma part, j’ai choisi de les intégrer au niveau de la Local Machine et vous pouvez choisir l’emplacement par défaut lorsque vous y êtes invité.
Une fois que c’est fait, il ne vous reste plus qu’à modifier votre configuration pour associer ce nouveau certificat à votre RD Gateway. Ceci aura pour effet d’interrompre toutes les connexions. Veillez donc bien à effectuer cette modification en accédant à votre VM via l’hyperviseur (et pas en utilisant justement votre RD Gateway – sinon vous allez vous couper les ailes).
Pour ce faire, ouvrez l’application RD Gateway Manager. Effectuez un clic droit sur le nom de votre serveur et choisissez Properties. Dans la nouvelle fenêtre qui s’ouvre, rendez-vous dans l’onglet SSL Certificate.
Sélectionnez le certificat qui correspond à celui que vous souhaitez installer. Si les noms sont trop proches, rappelez-vous que c’est le plus souvent celui qui dispose d’une date d’expiration la plus éloignée. 🙂
C’est terminé. Si nécessaire, redémarrez le serveur qui héberge votre rôle RD Gateway et re-tentez la connexion. C’est terminé – et dans mon cas je suis tranquille durant les 2 prochaines années ! 😎
En cas de questions, n’hésitez pas à utiliser la zone des commentaires. 🙂
Bonjour merci pour ces explications. Qu’en est il si on a une ferme RDS ? Faut il que le certificat utilisé soit le même pour l’ensemble des services ?
Bonjour Sébastien, dans une ferme RDS tu peux avoir plusieurs RDS Session Host ou VDI mais en général tu vas avoir 1 seul rôle RD Web Interface ou RD Gateway pour une ferme donnée. Donc le setup ne change pas, c’est bien ta Web Interface et ta RD Gateway qui doivent disposer d’un certificat SSL. En revanche, les autres serveurs de la ferme n’en ont pas besoin (il n’y a pas de setup à faire dessus pour les autres).
Bonjour Thibault merci pour ce retour rapide, j’ai un certificat autosigné qui a été attribué pour l’ensemble des services (il n’y avait pas de remotegateway avant), j’ai déployé ma remotegateway et installé le certificat public, j’ai bien accès depuis le web à ma remote gateway mais l’authentification ne passe pas (pb de certificat). Je suppose que c’est le fait que le certificat n’est pas identique sur l’ensemble des services ?
Hello Sébastien,
Il faudrait vérifier dans les Event Viewers pour avoir davantage d’informations mais il y en effet de grande chances que ce soit ça.
Dans tous les cas si vous avez un véritable certificat désormais – pourquoi disposer encore d’un certificat auto-signé ? Je ne suis pas sûr de bien comprendre ce point.
Thibault.