Si vos clients ne parviennent pas à se connecter avec Devolutions Gateway, s'assurer que le certificat contient la chaîne entière. Cette chaîne de certificats comprend tout certificat intermédiaire. Par exemple : Autorité de certification racine – Autorité de certification sécurisée – Certificat XYZ acheté.
Il est possible d'utiliser le magasin de certificats Windows comme source de certificat TLS. Au lieu d'utiliser un fichier, stocker et gérer les certificats avec Windows. Au moment de la rédaction, cette fonctionnalité n'est pas exposée dans la console de configuration de Devolutions Gateway GUI. Pour configurer, il faut soit modifier directement le fichier gateway.json, soit utiliser le module Devolutions.PowerShell.
Avec la nouvelle fonctionnalité, quelques paramètres supplémentaires sont disponibles pour configurer la source du certificat.
Si une configuration `TlsCertificateFile` et/ou `TlsPrivateKeyFile` a été précédemment définie, il n'est pas nécessaire de la supprimer car `TlsCertificateSource` indique à Devolutions Gateway où chercher le certificat.
- TlsCertificateSource (chaîne) : Source pour le certificat TLS, valeurs possibles indiquées ci-dessous.
- Externe (par défaut) : Récupérer un certificat stocké sur le système de fichiers. Voir les options
TlsCertificateFile
,TlsPrivateKeyFile
, etTlsPrivateKeyPassword
. - Système : Récupérer le certificat géré par le magasin de certificats du système. Voir les options
TlsCertificateSubjectName
,TlsCertificateStoreName
, etTlsCertificateStoreLocation
.
- Externe (par défaut) : Récupérer un certificat stocké sur le système de fichiers. Voir les options
- TlsCertificateSubjectName (chaîne) : Nom du sujet du certificat pour TLS lors de l'utilisation de la source système.
- TlsCertificateStoreName (chaîne) : Nom du magasin de certificats système à utiliser pour TLS (par défaut, il s'agit de Mon).
- TlsCertificateStoreLocation (chaîne) : Emplacement du magasin de certificats système à utiliser pour TLS, valeurs possibles présentées ci-dessous.
- CurrentUser (par défaut)
- CurrentService
- LocalMachine
Importer le certificat dans le magasin de certificats Windows
D'abord, importer votre certificat dans le magasin de certificats Windows. Windows supporte les formats de certificats suivants :
- Certificat X.509 - *.cer, *.crt
- Échange d'informations personnelles - *.pfx, *.p12
- Microsoft Serialized certificate Store - *.sst
- PKCS #7 Certificates - *.spc, *.p7b
Si vous utilisez la méthode `External` via `TlsCertificateSource`, alors Devolutions Gateway ne prend en charge que le regroupement de la clé publique et privée dans un fichier PFX (PKCS#12). Sinon, vous devez également définir le paramètre `TlsPrivateKeyFile`.
Convertir un certificat X.509
Devolutions Gateway nécessite une clé privée avec le certificat TLS ; par conséquent, il peut être nécessaire de combiner la clé publique avec sa clé privée. Voici deux méthodes : Remote Desktop Manager et l'utilitaire Windows intégré certutil
.
Utiliser Remote Desktop Manager
L'entrée Certificat X.509 peut être utilisée pour importer ledit certificat et l'exporter dans plusieurs formats différents, y compris PFX.
-
Dans Remote Desktop Manager cliquer sur Nouvelle Entrée – Gestion des Identifiants – Général – Certificat X.509.
-
Sélectionner le certificat et cliquer sur Ouvrir.
-
Cliquer sur Suivant.
-
Cliquer sur les points de suspension et sélectionner la Clé privée.
-
Cliquer sur Ouvrir.
La clé privée doit être avec l'extension `.key`.
-
Cliquer sur Terminer.
-
Renseigner l'information, puis cliquer sur Ajouter.
-
Sélectionner l'entrée et cliquer sur Enregistrer le certificat sous (également disponible dans le menu contextuel du clic droit).
-
Dans le champ Format d'exportation, choisir Échange d'informations personnelles (pfx).
-
Choisir où le fichier sera enregistré en cliquant sur les points de suspension.
-
Entrer un mot de passe fort, puis cliquer sur Exporter.
Utilisation de l'outil Windows certutil
Utiliser l'outil intégré Windows certutil
pour combiner un fichier certificat (.crt
ou .cer
) et sa clé privée (.key
). Les deux fichiers doivent avoir le même nom. certutil -MergePFX file.crt file.pfx
Importer le certificat
Après avoir acquis le certificat et le fichier de clé privée du certificat, l'importer dans Windows.
- Installer le certificat :
- Si Windows détecte automatiquement le certificat, double-cliquer dessus et choisir Installer le certificat... ; ou
- Ouvrir
certmgr.msc
à l'emplacement prévu du magasin (LocalMachine
ouCurrentUser
), cliquer avec le bouton droit sur le lieu souhaité (ex : Personnel/Certificats) et choisir Toutes les tâches – Importer.
- Choisir l'une des options suivantes et cliquer sur Suivant :
- Sélectionner automatiquement le magasin de certificats en fonction du type de certificat ; ou
- Placer tous les certificats dans le magasin suivant et cliquer sur Parcourir... pour choisir un dossier.
- Terminer l'importation en cliquant sur Terminer.
Donner à Devolutions Gateway des autorisations de lecture sur la clé privée du certificat
Par défaut, Devolutions Gateway exécute son service en utilisant le compte du service réseau. Pour utiliser un certificat du magasin de certificats local, s'assurer que le compte du service réseau a des autorisations de lecture sur la clé privée du certificat.
- Ouvrir le magasin de certificats local et naviguer jusqu'au certificat.
- Cliquer avec le bouton droit sur le certificat et choisir Toutes les tâches – Gérer les clés privées.
- Cliquer pour ajouter un nom d'utilisateur.
- Écrire "NETWORK SERVICE" dans le champ de noms d'objets puis cliquer sur OK.
- Sélectionner le nouveau nom d'utilisateur NETWORK SERVICE et octroyer la permission Lire dessus.
- Cliquer sur Appliquer, puis cliquer sur OK.
Configurer le magasin de certificats Windows via gateway.json
L'emplacement par défaut du fichier gateway.json
est dans le répertoire %ProgramData%\Devolutions\Gateway.
S'assurer que le fichier est un .json
valide en le testant avec :
$Config = ("{0}\Devolutions\Gateway\gateway.json" -F $Env:ProgramData)
Try {
Get-Content -Path $Config | ConvertFrom-JSON -ErrorAction 'Stop'
} Catch {
$PSItem[0].Exception.Message
}
Cela fonctionne avec PowerShell 5.1 et versions ultérieures (la version recommandée à utiliser est PowerShell 7.x).
Une configuration typique est montrée ci-dessous. Vos valeurs peuvent différer, notamment le Nom du Sujet, car cela reflétera le nom de domaine auquel Devolutions Gateway répond. Les valeurs importantes à changer sont :
TlsCertificateSource
-Système
TlsCertificateSubjectName
-gateway.ad.it-help.ninja
TlsCertificateStoreName
-My
TlsCertificateStoreLocation
-LocalMachine
Un exemple de fichier de configuration complet :
{
"Id": "c912b379-8c34-449d-8ff3-3aa20a9cc3e4",
"Hostname": "gateway.ad.it-help.ninja",
"TlsCertificateFile": "server.crt",
"TlsPrivateKeyFile": "server.key",
"TlsCertificateSource": "System",
"TlsCertificateSubjectName": "gateway.ad.it-help.ninja",
"TlsCertificateStoreName": "My",
"TlsCertificateStoreLocation": "LocalMachine",
"ProvisionerPublicKeyFile": "provisioner.pem",
"Listeners": [
{
"InternalUrl": "https://*:7171",
"ExternalUrl": "https://*:7171"
},
{
"InternalUrl": "tcp://*:8181",
"ExternalUrl": "tcp://*:8181"
}
]
}
- Exécuter le script ci-dessus.
- Ouvrir
services.msc
. - Faire un clic droit sur Devolutions Gateway Service et sélectionner Redémarrer.
- Vérifier si Devolutions Gateway fonctionne correctement en accédant à
https://{FQDN}:7171/jet/health
(remplacez{FQDN}
par votre adresse DNS du Gateway) avec un navigateur web.
Configurer le magasin de certificats Windows via PowerShell
Devolutions Gateway peut également être configuré via des commandes PowerShell. Le module Devolutions Gateway PowerShell expose de nombreuses commandes pour le configurer. Par défaut, une installation de Devolutions Gateway inclut le module dans le répertoire d'installation. Importer le module via ce qui suit :
# Import the Module
Import-Module -Name "C:\Program Files\Devolutions\Gateway\PowerShell\Modules\DevolutionsGateway"
# View the imported Modules
Get-Module
Une autre méthode pour rendre le module facilement accessible est de l'installer via ce qui suit :
# Install the DevolutionsGateway module
Install-Module -Name 'DevolutionsGateway'
# Update the module if installed via the above method (will not update the bundled version installed with Gateway)
Update-Module -Name 'DevolutionsGateway'
# Import the Module
Import-Module -Name 'DevolutionsGateway'
# View the imported modules to verify the DevolutionsGateway module is available
Get-Module
Une fois importé, voir la configuration actuelle via la commande suivante :
Get-DGatewayConfig
Pour indiquer à Devolutions Gateway d'utiliser le Windows Store, utiliser la commande suivante :
# Update the configuration; this will not remove any existing parameters, only configure those defined.
# Replace the '{FQDN}` example with the fully-qualified DNS name of the Gateway address
Set-DGatewayConfig -TlsCertificateSource "System" -TlsCertificateSubjectName "{FQDN}" -TlsCertificateStoreLocation "LocalMachine" -TlsCertificateStoreName "My"
# Display the updated configuration
Get-DGatewayConfig
Redémarrer le service pour que la configuration prenne effet.
Restart-Service -Name 'DevolutionsGateway'
Vérifier si Devolutions Gateway fonctionne correctement en naviguant vers https://{FQDN}:7171/jet/health
avec un navigateur Web.