> 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/de/knowledge-base/how-to-articles/use-windows-certificate-store-for-devolutions-gateway.md).

# Windows-Zertifikatspeicher für Devolutions Gateway verwenden

{% hint style="warning" %}
Wenn Ihre Clients keine Verbindung mit Devolutions Gateway herstellen können, stellen Sie sicher, dass das Zertifikat die gesamte Kette enthält. Diese Zertifikatskette umfasst alle Zwischenzertifikate. Zum Beispiel: Root-Zertifizierungsstelle – Sichere Zertifizierungsstelle – Erworbenes XYZ-Zertifikat.
{% endhint %}

Es ist möglich, den Windows-Zertifikatspeicher als TLS-Zertifikatsquelle zu verwenden. Anstatt eine Datei zu verwenden, speichern und verwalten Sie Ihre Zertifikate mit Windows. Zum Zeitpunkt der Erstellung dieses Artikels ist diese Funktionalität nicht in der GUI der Devolutions Gateway-Konfigurationskonsole verfügbar. Zur Konfiguration müssen Sie entweder die Datei gateway.json direkt bearbeiten oder das Modul Devolutions.PowerShell verwenden.

Mit der neuen Funktionalität stehen [einige zusätzliche Parameter](https://github.com/Devolutions/devolutions-gateway#configuration) zur Konfiguration der Zertifikatsquelle zur Verfügung.

{% hint style="info" %}
Wenn Sie zuvor eine `TlsCertificateFile`- und/oder `TlsPrivateKeyFile`-Konfiguration definiert haben, ist ein Entfernen nicht erforderlich, da `TlsCertificateSource` Devolutions Gateway mitteilt, wo nach dem Zertifikat gesucht werden soll.
{% endhint %}

* **TlsCertificateSource** (Zeichenfolge): Quelle für das TLS-Zertifikat, mögliche Werte werden unten aufgeführt.
  * **External** (Standard): Ruft ein im Dateisystem gespeichertes Zertifikat ab. Siehe die Optionen `TlsCertificateFile`, `TlsPrivateKeyFile` und `TlsPrivateKeyPassword`.
  * **System**: Ruft das vom Systemzertifikatspeicher verwaltete Zertifikat ab. Siehe die Optionen `TlsCertificateSubjectName`, `TlsCertificateStoreName` und `TlsCertificateStoreLocation`.
* **TlsCertificateSubjectName** (Zeichenfolge): Antragstellername des Zertifikats für TLS bei Verwendung der Quelle System.
* **TlsCertificateStoreName** (Zeichenfolge): Name des Systemzertifikatspeichers, der für TLS verwendet werden soll (Standard ist My).
* **TlsCertificateStoreLocation** (Zeichenfolge): Speicherort des Systemzertifikatspeichers, der für TLS verwendet werden soll, mögliche Werte werden unten aufgeführt.
  * **CurrentUser** (Standard)
  * **CurrentService**
  * **LocalMachine**

## Importieren des Zertifikats in den Windows-Zertifikatspeicher

Importieren Sie zunächst Ihr Zertifikat in den Windows-Zertifikatspeicher. Windows unterstützt die folgenden Zertifikatsformate:

* X.509-Zertifikat - \*.cer, \*.crt
* Privater Informationsaustausch - \*.pfx, \*.p12
* Serialisierter Microsoft-Zertifikatspeicher - \*.sst
* PKCS #7-Zertifikate - \*.spc, \*.p7b

{% hint style="info" %}
Bei Verwendung der Methode `External` über `TlsCertificateSource` unterstützt Devolutions Gateway nur die Bündelung des öffentlichen und privaten Schlüssels in einer PFX-Datei (PKCS#12). Andernfalls müssen Sie zusätzlich den Parameter `TlsPrivateKeyFile` definieren.
{% endhint %}

### Konvertieren eines X.509-Zertifikats

Devolutions Gateway benötigt einen privaten Schlüssel zusammen mit dem TLS-Zertifikat; daher müssen Sie möglicherweise den öffentlichen Schlüssel mit seinem privaten Schlüssel kombinieren. Hier sind zwei Methoden: [Remote Desktop Manager](#using-remote-desktop-manager) und das integrierte [Windows-Dienstprogramm certutil](#using-the-windows-certutil-utility).

#### Verwendung von Remote Desktop Manager

Der Eintrag ***X.509-Zertifikat*** kann verwendet werden, um das genannte Zertifikat zu importieren und in verschiedenen Formaten, einschließlich PFX, zu exportieren.

1. Klicken Sie in Remote Desktop Manager auf ***Neuer Eintrag*** – ***Verwaltung von Anmeldeinformationen*** – ***Allgemein*** – ***X.509-Zertifikat***.

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0180.png)
2. Wählen Sie das Zertifikat aus und klicken Sie auf ***Öffnen***.

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0164.png)
3. Klicken Sie auf ***Weiter***.

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0165.png)
4. Klicken Sie auf die Auslassungspunkte und wählen Sie den ***privaten Schlüssel*** aus.

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0166.png)
5. Klicken Sie auf ***Öffnen***.

   ![](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>Der <em><strong>private Schlüssel</strong></em> muss die Erweiterung <code>.key</code> haben.</p></div>
6. Klicken Sie auf ***Fertigstellen***.

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0168.png)
7. Geben Sie die Informationen ein und klicken Sie dann auf ***Hinzufügen***.

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0167.png)
8. Wählen Sie den Eintrag aus und klicken Sie auf ***Zertifikat speichern unter*** (auch im Rechtsklick-Kontextmenü verfügbar).

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0186.png)
9. Wählen Sie im Feld ***Exportformat*** die Option ***Privater Informationsaustausch (pfx)***.
10. Wählen Sie durch Klicken auf die Auslassungspunkte, wo die Datei gespeichert wird.
11. Geben Sie ein starkes Passwort ein und klicken Sie dann auf ***Exportieren***.

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

#### Verwendung des Windows-Dienstprogramms `certutil`

Verwenden Sie das integrierte Windows-Dienstprogramm `certutil`, um eine Zertifikatsdatei (`.crt` oder `.cer`) und ihren privaten Schlüssel (`.key`) zu kombinieren. Beide Dateien müssen denselben Namen haben. `certutil -MergePFX file.crt file.pfx`

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

### Importieren des Zertifikats

Nachdem Sie das Zertifikat und die Datei mit dem privaten Zertifikatsschlüssel erhalten haben, importieren Sie es in Windows.

1. Installieren Sie das Zertifikat:
   * Wenn Windows das Zertifikat automatisch erkennt, doppelklicken Sie darauf und wählen Sie ***Zertifikat installieren...***; oder
   * Öffnen Sie `certmgr.msc` am vorgesehenen Speicherort (`LocalMachine` oder `CurrentUser`), klicken Sie mit der rechten Maustaste auf den gewünschten Speicherort (z. B. ***Eigene Zertifikate/Zertifikate***) und wählen Sie ***Alle Aufgaben*** – ***Importieren***.

     ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0183.png)
2. Wählen Sie eine der folgenden Optionen und klicken Sie auf ***Weiter***:
   * ***Zertifikatspeicher automatisch auswählen, basierend auf dem Zertifikatstyp***; oder
   * ***Alle Zertifikate in folgendem Speicher speichern*** und klicken Sie auf ***Durchsuchen...***, um einen Ordner auszuwählen.

     ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0184.png)
3. Schließen Sie den Import ab, indem Sie auf ***Fertigstellen*** klicken.

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

## Dem Devolutions Gateway-Dienst Leseberechtigung für den privaten Schlüssel des Zertifikats erteilen

Standardmäßig führt Devolutions Gateway seinen Dienst mit dem Konto Netzwerkdienst aus. Um ein Zertifikat aus dem lokalen Zertifikatspeicher zu verwenden, stellen Sie sicher, dass das Konto Netzwerkdienst Leseberechtigungen für den privaten Schlüssel des Zertifikats hat.

1. Öffnen Sie den lokalen Zertifikatspeicher und navigieren Sie zum Zertifikat.
2. Klicken Sie mit der rechten Maustaste auf das Zertifikat und wählen Sie ***Alle Aufgaben*** – ***Private Schlüssel verwalten***.

   ![](https://cdnweb.devolutions.net/docs/INTERFACE2079.png)
3. Klicken Sie, um einen Benutzernamen hinzuzufügen.

   ![](https://cdnweb.devolutions.net/docs/INTERFACE2080.png)
4. Schreiben Sie "NETWORK SERVICE" in das Feld für Objektnamen und klicken Sie dann auf ***OK***.

   ![](https://cdnweb.devolutions.net/docs/INTERFACE2081.png)
5. Wählen Sie den neuen Benutzernamen ***NETWORK SERVICE*** aus und erteilen Sie ihm die Berechtigung ***Lesen***.

   ![](https://cdnweb.devolutions.net/docs/INTERFACE2082.png)
6. Klicken Sie auf ***Übernehmen*** und dann auf ***OK***.

## Konfigurieren des Windows-Zertifikatspeichers über gateway.json

Der Standardspeicherort der Datei `gateway.json` ist das Verzeichnis **%ProgramData%\Devolutions\Gateway**.

Stellen Sie sicher, dass die Datei eine gültige `.json`-Datei ist, indem Sie sie damit testen:

```powershell
$Config = ("{0}\Devolutions\Gateway\gateway.json" -F $Env:ProgramData)

Try {
  Get-Content -Path $Config | ConvertFrom-JSON -ErrorAction 'Stop'
} Catch {
  $PSItem[0].Exception.Message
}
```

Dies funktioniert mit PowerShell 5.1 und späteren Versionen (die empfohlene Version ist PowerShell 7.x).

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

Eine typische Konfiguration ist unten dargestellt. Ihre Werte können abweichen, insbesondere der ***Antragstellername***, da dieser den Domänennamen widerspiegelt, auf den Devolutions Gateway antwortet. Die wichtigen zu ändernden Werte sind:

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

Ein Beispiel für die gesamte Konfigurationsdatei:

```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. Führen Sie das obige Skript aus.
2. Öffnen Sie `services.msc`.
3. Klicken Sie mit der rechten Maustaste auf ***Devolutions Gateway Service*** und wählen Sie ***Neu starten***.

   ![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB0174.png)
4. Überprüfen Sie, ob Devolutions Gateway korrekt ausgeführt wird, indem Sie mit einem Webbrowser zu `https://{FQDN}:7171/jet/health` navigieren (ersetzen Sie `{FQDN}` durch Ihre Gateway-DNS-Adresse).

## Konfigurieren des Windows-Zertifikatspeichers über PowerShell

Devolutions Gateway kann auch über PowerShell-Befehle konfiguriert werden. Das [Devolutions Gateway PowerShell-Modul](https://www.powershellgallery.com/packages/DevolutionsGateway/) bietet viele Befehle zur Konfiguration. Standardmäßig enthält eine Installation von Devolutions Gateway das Modul im Installationsverzeichnis. Importieren Sie das Modul wie folgt:

```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)

Eine weitere Methode, das Modul leicht zugänglich zu machen, ist die Installation wie folgt:

```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)

Nach dem Import können Sie die aktuelle Konfiguration mit dem folgenden Befehl anzeigen:

```powershell
Get-DGatewayConfig
```

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

Um Devolutions Gateway anzuweisen, den Windows-Speicher zu verwenden, verwenden Sie den folgenden Befehl:

```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)

Starten Sie den Dienst neu, damit die Konfiguration wirksam wird.

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

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

Überprüfen Sie, ob Devolutions Gateway korrekt ausgeführt wird, indem Sie mit einem Webbrowser zu `https://{FQDN}:7171/jet/health` navigieren.


---

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