> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/gateway/fr/knowledge-base/how-to-articles/use-windows-certificate-store-for-devolutions-gateway.md).

# Utiliser le magasin de certificats Windows pour Devolutions Gateway

{% hint style="warning" %}
Si vos clients n'arrivent pas à se connecter à Devolutions Gateway, assurez-vous que le certificat contient la chaîne complète. Cette chaîne de certificats inclut tout certificat intermédiaire. Par exemple : Autorité de certification racine – Autorité de certification sécurisée – Certificat XYZ acheté.
{% endhint %}

Il est possible d'utiliser le magasin de certificats Windows comme source de certificat TLS. Au lieu d'utiliser un fichier, stockez et gérez vos certificats avec Windows. Au moment de la rédaction, cette fonctionnalité n'est pas exposée dans l'interface graphique de la console de configuration de Devolutions Gateway. Pour la configurer, vous devez soit modifier directement le fichier gateway.json, soit utiliser le module Devolutions.PowerShell.

Avec la nouvelle fonctionnalité, [quelques paramètres additionnels](https://github.com/Devolutions/devolutions-gateway#configuration) sont disponibles pour configurer la source du certificat.

{% hint style="info" %}
Si vous avez déjà défini une configuration `TlsCertificateFile` et/ou `TlsPrivateKeyFile`, il n'est pas nécessaire de la supprimer, car `TlsCertificateSource` indique à Devolutions Gateway où chercher le certificat.
{% endhint %}

* **TlsCertificateSource** (chaîne) : Source du certificat TLS, valeurs possibles ci-dessous.
  * **External** (par défaut) : Récupérer un certificat stocké sur le système de fichiers. Voir les options `TlsCertificateFile`, `TlsPrivateKeyFile` et `TlsPrivateKeyPassword`.
  * **System** : Récupérer le certificat géré par le magasin de certificats du système. Voir les options `TlsCertificateSubjectName`, `TlsCertificateStoreName` et `TlsCertificateStoreLocation`.
* **TlsCertificateSubjectName** (chaîne) : Nom du sujet du certificat pour TLS lorsque la source System est utilisée.
* **TlsCertificateStoreName** (chaîne) : Nom du magasin de certificats système à utiliser pour TLS (la valeur par défaut est My).
* **TlsCertificateStoreLocation** (chaîne) : Emplacement du magasin de certificats système à utiliser pour TLS, valeurs possibles ci-dessous.
  * **CurrentUser** (par défaut)
  * **CurrentService**
  * **LocalMachine**

## Importer le certificat dans le magasin de certificats Windows

D'abord, importez votre certificat dans le magasin de certificats Windows. Windows prend en charge les formats de certificat suivants :

* Certificat X.509 - \*.cer, \*.crt
* Échange d'informations personnelles - \*.pfx, \*.p12
* Magasin de certificats sérialisés Microsoft - \*.sst
* Certificats PKCS #7 - \*.spc, \*.p7b

{% hint style="info" %}
Si vous utilisez la méthode `External` via `TlsCertificateSource`, Devolutions Gateway prend uniquement en charge le regroupement de la clé publique et de la clé privée dans un fichier PFX (PKCS#12). Sinon, vous devrez également définir le paramètre `TlsPrivateKeyFile`.
{% endhint %}

### Convertir un certificat X.509

Devolutions Gateway requiert une clé privée avec le certificat TLS; par conséquent, vous devrez peut-être combiner la clé publique avec sa clé privée. Voici deux méthodes : [Remote Desktop Manager](#using-remote-desktop-manager) et l'utilitaire Windows intégré [certutil](#using-the-windows-certutil-utility).

#### 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.

1. Dans Remote Desktop Manager, cliquez sur ***Nouvelle entrée*** – ***Gestion des identifiants*** – ***Général*** – ***Certificat X.509***.

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0180.png)
2. Sélectionnez le certificat et cliquez sur ***Ouvrir***.

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0164.png)
3. Cliquez sur ***Suivant***.

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0165.png)
4. Cliquez sur les points de suspension et sélectionnez la ***Clé privée***.

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0166.png)
5. Cliquez sur ***Ouvrir***.

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0181.png)

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>La <em><strong>clé privée</strong></em> doit avoir l'extension <code>.key</code>.</p></div>
6. Cliquez sur ***Terminer***.

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0168.png)
7. Remplissez les informations, puis cliquez sur ***Ajouter***.

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0167.png)
8. Sélectionnez l'entrée et cliquez sur ***Enregistrer le certificat sous*** (également disponible dans le menu contextuel du clic droit).

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0186.png)
9. Dans le champ ***Format d'exportation***, choisissez ***Échange d'informations personnelles (pfx)***.
10. Choisissez l'emplacement où le fichier sera enregistré en cliquant sur les points de suspension.
11. Entrez un mot de passe robuste, puis cliquez sur ***Exporter***.

    ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0182.png)

#### Utiliser l'utilitaire Windows `certutil`

Utilisez l'utilitaire Windows intégré `certutil` pour combiner un fichier de certificat (`.crt` ou `.cer`) et sa clé privée (`.key`). Les deux fichiers doivent porter le même nom. `certutil -MergePFX file.crt file.pfx`

![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0169.png)

### Importer le certificat

Après avoir obtenu le certificat et le fichier de clé privée du certificat, importez-le dans Windows.

1. Installez le certificat :
   * Si Windows détecte automatiquement le certificat, double-cliquez sur celui-ci et choisissez ***Installer le certificat...***; ou
   * Ouvrez `certmgr.msc` à l'emplacement de magasin prévu (`LocalMachine` ou `CurrentUser`), cliquez avec le bouton droit sur l'emplacement souhaité (ex. : ***Personnel/Certificats***) et choisissez ***Toutes les tâches*** – ***Importer***.

     ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0183.png)
2. Choisissez l'une des options suivantes et cliquez sur ***Suivant*** :
   * ***Sélectionner automatiquement le magasin de certificats selon le type de certificat***; ou
   * ***Placer tous les certificats dans le magasin suivant*** et cliquez sur ***Parcourir...*** pour choisir un dossier.

     ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0184.png)
3. Terminez l'importation en cliquant sur ***Terminer***.

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0185.png)

## Accorder au service Devolutions Gateway l'autorisation de lecture sur la clé privée du certificat

Par défaut, Devolutions Gateway exécute son service à l'aide du compte Network Service. Pour utiliser un certificat provenant du magasin de certificats local, assurez-vous que le compte Network Service possède les autorisations de lecture sur la clé privée du certificat.

1. Ouvrez le magasin de certificats local et accédez au certificat.
2. Cliquez avec le bouton droit sur le certificat et sélectionnez ***Toutes les tâches*** – ***Gérer les clés privées***.

   ![](https://cdnweb.devolutions.net/docs/INTERFACE2079.png)
3. Cliquez pour ajouter un nom d'utilisateur.

   ![](https://cdnweb.devolutions.net/docs/INTERFACE2080.png)
4. Écrivez « NETWORK SERVICE » dans le champ des noms d'objets, puis cliquez sur ***OK***.

   ![](https://cdnweb.devolutions.net/docs/INTERFACE2081.png)
5. Sélectionnez le nouveau nom d'utilisateur ***NETWORK SERVICE*** et autorisez la permission ***Lecture*** sur celui-ci.

   ![](https://cdnweb.devolutions.net/docs/INTERFACE2082.png)
6. Cliquez sur ***Appliquer***, puis cliquez sur ***OK***.

## Configurer le magasin de certificats Windows via gateway.json

L'emplacement par défaut du fichier `gateway.json` est le répertoire **%ProgramData%\Devolutions\Gateway**.

Assurez-vous que le fichier est un `.json` valide en le testant avec :

```powershell
$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 les versions ultérieures (la version recommandée à utiliser est PowerShell 7.x).

![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0173.png)

Une configuration typique est présentée ci-dessous. Vos valeurs peuvent différer, particulièrement le ***Nom du sujet***, puisque celui-ci reflétera le nom de domaine auquel Devolutions Gateway répond. Les valeurs importantes à modifier sont :

* `TlsCertificateSource` - `System`
* `TlsCertificateSubjectName` - `gateway.ad.it-help.ninja`
* `TlsCertificateStoreName` - `My`
* `TlsCertificateStoreLocation` - `LocalMachine`

Un exemple du fichier de configuration complet :

```json
{
  "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"
    }
  ]
}
```

1. Exécutez le script ci-dessus.
2. Ouvrez `services.msc`.
3. Cliquez avec le bouton droit sur ***Devolutions Gateway Service*** et sélectionnez ***Redémarrer***.

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0174.png)
4. Vérifiez si Devolutions Gateway fonctionne correctement en accédant à `https://{FQDN}:7171/jet/health` (en remplaçant `{FQDN}` par l'adresse DNS de votre Gateway) avec un navigateur Web.

## Configurer le magasin de certificats Windows via PowerShell

Devolutions Gateway peut également être configuré au moyen de commandes PowerShell. Le [module PowerShell Devolutions Gateway](https://www.powershellgallery.com/packages/DevolutionsGateway/) expose de nombreuses commandes pour le configurer. Par défaut, une installation de Devolutions Gateway inclut le module dans le répertoire d'installation. Importez le module comme suit :

```powershell
# Import the Module
Import-Module -Name "C:\Program Files\Devolutions\Gateway\PowerShell\Modules\DevolutionsGateway"
# View the imported Modules
Get-Module
```

![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0175.png)

Une autre méthode pour rendre le module facilement accessible est de l'installer comme suit :

```powershell
# 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
```

![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0176.png)

Une fois importé, vous pouvez voir la configuration actuelle avec la commande suivante :

```powershell
Get-DGatewayConfig
```

![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0177.png)

Pour indiquer à Devolutions Gateway d'utiliser le magasin Windows, utilisez la commande suivante :

```powershell
# 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
```

![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0178.png)

Redémarrez le service pour que la configuration prenne effet.

```powershell
Restart-Service -Name 'DevolutionsGateway'
```

![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0179.png)

Vérifiez si Devolutions Gateway fonctionne correctement en accédant à `https://{FQDN}:7171/jet/health` avec un navigateur Web.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/gateway/fr/knowledge-base/how-to-articles/use-windows-certificate-store-for-devolutions-gateway.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
