Utiliser un certificat signé par une autorité sur une ferme RDS
Par Erwan C.
Le 07.06.2024
Utiliser un certificat signé par une autorité sur une ferme RDS
Dans ce tutoriel vous allez découvrir comment installer et renouveler un certificat SSL valide distribué par une autorité de confiance sur une ferme RDS, ce qui vous permettra de rendre accessible aisément votre infrastructure à des postes hors domaines sans distribution manuelles de certificats.
Infrastructure de test utilisée
- Ferme RDS composée d'un serveur gateway/broker et deux client RDS
- PC hors domaine pour tester la validité du certificat
Afin d'effectuer les tests, nous utiliserons le FQDN suivant pour la ferme RDS : rds.it-discover.fr Le certificat sera généré par le biais de la version gratuite de ZeroSSL https://zerossl.com/, vous pouvez très bien utiliser DigiCert, Let's Encrypt, etc.
Pré-requis
- Une ferme RDS avec une gateway
- Un (sous)-domaine qui pointe vers votre ferme RDS
- Les accès à votre registrar (OVH, Amen, Gandi, etc)
- OpenSSL d'installé sur votre poste https://slproweb.com/products/Win32OpenSSL.html
Si vous êtes prêt, c'est parti !
Génération du certificat
Dans un premier temps, pointer votre (sous-)domaine si ce n'est pas déjà fait vers l'IP publique de votre gateway. Si un NAT est nécessaire, n'oubliez pas dans votre pare-feu d'ouvrir le port 443.
Une fois ceci fait, rendez-vous sur votre FQDN (ici rds.it-discover.fr), vous devriez bien tomber sur votre gateway avec une erreur de certificat :
Rendant de plus, impossible la connexion via l'outil natif de RDP dans le cadre de la ferme RDS.
Si la redirection est bonne, allons générer le certificat. Pour se faire, j'ai choisi de passer par ZeroSSL comme évoqué plus haut. La manipulation demeure assez similaire quelque soit le fournisseur.
Rendez-vous sur ZeroSSL et indiquez votre domaine, puis faites Next Step :
Si vous n'avez pas de compte, créez-en un, sinon connectez-vous :
Puis, vous arrivez sur l'interface de création de certificat. Si comme moi vous souhaitez passer par la version gratuite, cochez 90 Jours, ce qui correspond à la durée du certificat, et faites Next Step :
Cocher Auto CSR afin de remplir automatiquement la demande du certificat, puis faites Next Step :
Enfin, vérifiez bien que le plan souhaité est bien sélectionné et faites Next Step :
Votre certificat est maintenant créé, plus que l'étape de la validation à faire. Pour ceci, cochez "DNS (CNAME)" et faites pointer les valeurs fournies sur votre registrar. Quand ceci est fait, faites Next Step puis Verify domain.
Si les vérifications ont été correctes, vous arriverez sur la page finale permettant de télécharger votre certificat, si tel est le cas téléchargez le.
Conversion du certificat
Dézipper le fichier .ZIP précédemment téléchargé.
Vous vous retrouverez avec 3 fichiers :
- ca_bundle.crt
- cert.crt
- private.key Les noms peuvent varier selon le fournisseur
Afin d'installer le certificat sur notre serveur, il nous faut un fichier combiné au format PFX. Ainsi, lancez un invite de commande et rendez-vous dans le dossier où se situe les fichiers précédemment décompressés. Une fois ceci fait, entrez la commande suivante, entrez un mot de passe pour protéger le certificat et voilà, votre certificat est maintenant combiné :
openssl pkcs12 -export -out MonNouveauCertificat.pfx -inkey private.key -in cert.crt
Installation/renouvellement du certificat
Copiez ce nouvellement créé fichier PFX directement sur la Gateway de votre ferme RDS, et connectez-vous dessus. Ouvrez la barre de recherche Windows et lancez le Gestionnaire de passerelle Bureau à distance :
Faites clic-droit sur votre serveur, puis Propriétés :
Cliquez sur Certificat SSL, puis "Parcourir et importer un" et importez le fichier PFX déposé précédemment. Entrez le mot de passe entré lors de la conversion avec OpenSSL. Puis, faites OK.
Une fois ceci fait, si vous vous rendez sur le FQDN de votre ferme RDS (ici rds.it-discover.fr), plus aucune erreur n'apparaîit :
Il en est de même pour le RDP, vous pouvez maintenant utiliser la connexion à distance sans erreurs de certificats.