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

# Brug Windows-certifikatlageret til Devolutions Gateway

Konfigurer Devolutions Gateway til at hente sit TLS-certifikat fra Windows-certifikatlageret i stedet for en certifikatfil.

{% hint style="warning" %}
Hvis Deres klienter ikke kan oprette forbindelse med Devolutions Gateway, skal De sikre, at certifikatet indeholder hele kæden. Denne certifikatkæde omfatter eventuelle mellemliggende certifikater. Eksempel: Root Certificate Authority – Secure Certificate Authority – Purchased XYZ Certificate.
{% endhint %}

Det er muligt at bruge Windows-certifikatlageret som kilde til TLS-certifikatet. I stedet for en fil kan De gemme og administrere certifikaterne med Windows. I skrivende stund er denne funktion ikke tilgængelig i konfigurationskonsollens brugergrænseflade til Devolutions Gateway. For at konfigurere skal De enten redigere filen gateway.json direkte eller bruge modulet Devolutions.PowerShell.

Med den nye funktion er der [nogle yderligere parametre](https://github.com/Devolutions/devolutions-gateway#configuration) til at konfigurere kilden til certifikatet.

{% hint style="info" %}
Hvis De tidligere har defineret konfigurationen `TlsCertificateFile` og/eller `TlsPrivateKeyFile`, er det unødvendigt at fjerne den, fordi `TlsCertificateSource` fortæller Devolutions Gateway, hvor certifikatet skal søges.
{% endhint %}

* **TlsCertificateSource** (string): Kilde til TLS-certifikatet. Mulige værdier er vist nedenfor.
  * **External** (standard): Hent et certifikat, der er gemt i filsystemet. Se indstillingerne `TlsCertificateFile`, `TlsPrivateKeyFile` og `TlsPrivateKeyPassword`.
  * **System**: Hent certifikatet, der administreres af systemets certifikatlager. Se indstillingerne `TlsCertificateSubjectName`, `TlsCertificateStoreName` og `TlsCertificateStoreLocation`.
* **TlsCertificateSubjectName** (string): Emnenavn på certifikatet til TLS, når kilden System bruges.
* **TlsCertificateStoreName** (string): Navn på det systemcertifikatlager, der skal bruges til TLS (standard er My).
* **TlsCertificateStoreLocation** (string): Placering af det systemcertifikatlager, der skal bruges til TLS. Mulige værdier er vist nedenfor.
  * **CurrentUser** (standard)
  * **CurrentService**
  * **LocalMachine**

## Import af certifikatet til Windows-certifikatlageret

Importér først certifikatet til Windows-certifikatlageret. Windows understøtter følgende certifikatformater:

* X.509-certifikat - \*.cer, \*.crt
* Personal Information Exchange - \*.pfx, \*.p12
* Microsoft Serialized certificate Store - \*.sst
* PKCS #7-certifikater - \*.spc, \*.p7b

{% hint style="info" %}
Hvis De bruger metoden `External` via `TlsCertificateSource`, understøtter Devolutions Gateway kun at samle den offentlige nøgle og den private nøgle i en PFX-fil (PKCS#12). Ellers skal De også definere parameteren `TlsPrivateKeyFile`.
{% endhint %}

### Konvertering af et X.509-certifikat

Devolutions Gateway kræver en privat nøgle sammen med TLS-certifikatet, og De kan derfor få brug for at kombinere den offentlige nøgle med dens private nøgle. Her er to metoder: [Remote Desktop Manager](#using-remote-desktop-manager) og det indbyggede [Windows-værktøj certutil](#using-the-windows-certutil-utility).

#### Brug af Remote Desktop Manager

Posten ***X.509-certifikat*** kan bruges til at importere certifikatet og eksportere det i flere forskellige formater, herunder PFX.

1. I Remote Desktop Manager skal De klikke på ***Ny post*** – ***Administration af legitimationsoplysninger*** – ***Generelt*** – ***X.509-certifikat***.
2. Vælg certifikatet, og klik på ***Åbn***.
3. Klik på ***Næste***.
4. Klik på ellipsen, og vælg den ***private nøgle***.
5. Klik på ***Åbn***.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Den <em><strong>private nøgle</strong></em> skal have filtypenavnet <code>.key</code>.</p></div>
6. Klik på ***Afslut***.
7. Udfyld oplysningerne, og klik derefter på ***Tilføj***.
8. Vælg posten, og klik på ***Gem certifikat som*** (findes også i genvejsmenuen ved højreklik).
9. Vælg ***Personlig informationsudveksling (pfx)*** i feltet ***Eksportformat***.
10. Vælg, hvor filen skal gemmes, ved at klikke på ellipsen.
11. Angiv en stærk adgangskode, og klik derefter på ***Eksportér***.

#### Brug af Windows-værktøjet `certutil`

Brug det indbyggede Windows-værktøj `certutil` til at kombinere en certifikatfil (`.crt` eller `.cer`) og dens private nøgle (`.key`). Begge filer skal have samme navn. `certutil -MergePFX file.crt file.pfx`

### Import af certifikatet

Når De har certifikatet og filen med den private nøgle, skal De importere det i Windows.

1. Installér certifikatet:
   * Hvis Windows automatisk registrerer certifikatet, skal De dobbeltklikke på det og vælge ***Installer certifikat...***, eller
   * Åbn `certmgr.msc` til den tilsigtede lagerplacering (`LocalMachine` eller `CurrentUser`), højreklik på den ønskede placering (f.eks. ***Personlige/Certifikater***), og vælg ***Alle opgaver*** – ***Importér***.
2. Vælg en af følgende indstillinger, og klik på ***Næste***:
   * ***Vælg automatisk certifikatlageret ud fra certifikattypen***, eller
   * ***Placer alle certifikater i følgende lager***, og klik på ***Gennemse...*** for at vælge en mappe.
3. Fuldfør importen ved at klikke på ***Afslut***.

## Giv tjenesten Devolutions Gateway læsetilladelse til certifikatets private nøgle

Som standard kører Devolutions Gateway sin tjeneste med kontoen Network Service. For at bruge et certifikat fra det lokale certifikatlager skal De sikre, at kontoen Network Service har læsetilladelser til certifikatets private nøgle.

1. Åbn det lokale certifikatlager, og gå til certifikatet.
2. Højreklik på certifikatet, og vælg ***Alle opgaver*** – ***Administrer private nøgler***.
3. Klik for at tilføje et brugernavn.
4. Skriv "NETWORK SERVICE" i feltet objektnavne, og klik derefter på ***OK***.
5. Vælg det nye brugernavn ***NETWORK SERVICE***, og giv det tilladelsen ***Læs***.
6. Klik på ***Anvend***, og klik derefter på ***OK***.

## Konfiguration af Windows-certifikatlageret via gateway.json

Standardplaceringen for filen `gateway.json` er mappen **%ProgramData%\Devolutions\Gateway**.

Kontrollér, at filen er gyldig `.json`, ved at teste den med:

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

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

Dette virker med PowerShell 5.1 og nyere versioner (den anbefalede version er PowerShell 7.x).

En typisk konfiguration er vist nedenfor. Deres værdier kan afvige, især ***emnenavnet***, fordi det afspejler det domænenavn, Devolutions Gateway svarer på. De vigtige værdier, der skal ændres, er:

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

Et eksempel på hele konfigurationsfilen:

```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. Kør scriptet ovenfor.
2. Åbn `services.msc`.
3. Højreklik på ***Devolutions Gateway Service***, og vælg ***Genstart***.
4. Kontrollér, at Devolutions Gateway kører korrekt, ved at gå til `https://{FQDN}:7171/jet/health` (erstat `{FQDN}` med DNS-adressen for Deres gateway) i en webbrowser.

## Konfiguration af Windows-certifikatlageret via PowerShell

Devolutions Gateway kan også konfigureres med PowerShell-kommandoer. [PowerShell-modulet til Devolutions Gateway](https://www.powershellgallery.com/packages/DevolutionsGateway/) viser mange kommandoer til at konfigurere den. En installation af Devolutions Gateway indeholder som standard modulet i installationsmappen. Importér modulet på følgende måde:

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

En anden måde at gøre modulet let tilgængeligt på er at installere det på følgende måde:

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

Når det er importeret, kan De se den aktuelle konfiguration med følgende kommando:

```powershell
Get-DGatewayConfig
```

Brug følgende kommando for at få Devolutions Gateway til at bruge Windows-certifikatlageret:

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

Genstart tjenesten, for at konfigurationen træder i kraft.

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

Kontrollér, at Devolutions Gateway kører korrekt, ved at gå til `https://{FQDN}:7171/jet/health` i en webbrowser.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
