> 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/reverse-proxying/cloudflare-with-devolutions-gateway.md).

# Cloudflare med Devolutions Gateway

Konfigurer Devolutions Gateway bag en Cloudflare Tunnel, herunder tunnelkonfiguration, certifikater og opsætning af Devolutions Server eller Cloud.

{% hint style="warning" %}
Vigtig funktionsmåde for Cloudflare Tunnel: et offentligt værtsnavn for en navngiven Cloudflare-tunnel betjener HTTP/HTTPS/WebSocket i Cloudflare-kanten på port 443. Det eksponerer ikke rå TCP som værtsnavn:port på det offentlige internet. Til oprindelige TCP-relæsessioner i RDM skal hver klient køre cloudflared access tcp, som opretter en lokal lytter, f.eks. localhost:8181.
{% endhint %}

1. Log på Cloudflare-dashboardet.
2. Gå til sektionen ***Zero Trust*** under ***Cloudflare Dashboard***. De kan blive bedt om at vælge en plan. Gratisplanen Zero Trust virker.

{% hint style="info" %}
Den gratis Cloudflare-plan kan bruges til at installere og køre Cloudflare-tunneler. På gratisplanen skal det offentlige domæne dog bruge fuld DNS-opsætning med Cloudflare som den autoritative navneserver.
{% endhint %}

3. Gå til ***Netværk*** – ***Tunneler og mesh***, og klik på ***Opret en tunnel***.
4. Vælg ***Cloudflared***, og klik på ***Næste***.
5. Angiv et navn, og klik på ***Gem tunnel***.
6. Vælg det relevante operativsystem og den relevante arkitektur.
7. Download installationsprogrammet via det angivne link.
8. ***Kopiér*** konfigurationsstrengen.
9. Kør installationsprogrammet til Cloudflare.
10. I sektionen ***Installér og kør en connector*** i installationsvinduet til Cloudflare skal De kopiere kommandoen.
11. Åbn den server, hvor Cloudflare-tunneldæmonen er installeret, og åbn derefter ***Kommandoprompt*** som administrator.
12. Indsæt den konfigurationsstreng, der blev kopieret i trin 8, og tryk på Enter.

{% hint style="info" %}
Det er tilrådeligt at kontrollere, at Status vises som Connected.\
\
Hvis tunnelen administreres med token eller eksternt, bruger den de ingress- og TLS-indstillinger, der er konfigureret i Cloudflare-dashboardet. Hvis De i stedet kører cloudflared med en lokal config.yml, der definerer sin egen ingress:-blok, ignoreres dashboardindstillingerne, herunder No TLS Verify.
{% endhint %}

13. Klik på ***Næste***.
14. Angiv et entydigt underdomæne.
15. Vælg ***HTTPS*** som ***Type***. Når De bruger et selvsigneret certifikat eller et certifikat fra en intern CA til Devolutions Gateway, skal De aktivere indstillingen No TLS Verify under ***Yderligere programindstillinger*** – ***TLS***.

{% hint style="info" %}
Brug localhost:7171 som URL, hvis standardkonfigurationen af gatewayen blev brugt.
{% endhint %}

{% hint style="warning" %}
Lad HTTP2-forbindelsen være slået fra for HTTPS-ingress. Devolutions Gateway bruger WebSocket, og HTTP/2 til oprindelsen kan ødelægge WebSocket-opgraderinger.
{% endhint %}

16. Klik på **Fuldfør opsætning.**
17. Klik på det netop oprettede ***Tunnelnavn***.
18. Klik på ***Publicerede programruter*** og derefter på ***Tilføj en publiceret programrute***.
19. Angiv et entydigt underdomæne (et andet end i trin 14).
20. Vælg ***TCP*** som ***Type***. Angiv [`localhost:8181`](http://localhost:8181), hvis De bruger standardporten.

{% hint style="warning" %}
Cloudflare afslutter ikke TLS på TCP-stien, og der er ingen indstilling TLS Verify for TCP. TLS-validering sker ende til ende mellem RDM-klienten og Devolutions Gateway gennem den lokale bro cloudflared access tcp.
{% endhint %}

Når De er færdige, bør der være to offentlige værtsnavne.

## **Hent klargøringsnøglen**

Den offentlige DVLS-nøglefil skal være tilgængelig for den server, der hoster Devolutions Gateway, og som ligger bag Cloudflare-tunnelen.

1. Log på instansen af Devolutions Server eller Devolutions Cloud som en bruger med adgang til konfigurationen af Devolutions Gateway.
2. Gå til ***Administration*** — ***Devolutions Gateway***.
3. Klik på knappen ***Mere***, og vælg ***Download offentlig nøgle***.

## **Installér Devolutions Gateway med Cloudflare**

1. Åbn en forbindelse til den server, der hoster Devolutions Gateway, og download [installationsprogrammet](https://devolutions.net/gateway/).
2. Kør installationsprogrammet.
3. Klik på ***Næste***.
4. Når den ønskede installationssti er valgt, skal De klikke på knappen ***Næste***.
5. Klik på ***Næste***.
6. Klik på ***Næste*** i vinduet ***Lyttere***.

{% hint style="warning" %}
Det er tilrådeligt at lade standardlytterne blive, da de sandsynligvis svarer til konfigurationen af Cloudflare-tunnelen.
{% endhint %}

7. Angiv den eksterne URI, som gatewayen kan nås via.
8. Klik på ***Næste***.
9. Angiv stien til TLS-certifikaterne eller til placeringen af systemets certifikatlager.

{% hint style="warning" %}
Gateway-certifikatet skal indeholde hvert navn, som en TLS-klient validerer imod. I modellen med Cloudflare TCP-bro opretter klienten forbindelse til `localhost:<port>,`, så localhost skal være i certifikatets SAN sammen med gatewayens interne FQDN. De offentlige værtsnavne for Cloudflare-tunnelen behøver typisk ikke at være i gateway-certifikatet.
{% endhint %}

10. Klik på ***Næste***.
11. Angiv stien til den tidligere hentede offentlige nøgle fra Devolutions Server eller Devolutions Cloud.

{% hint style="info" %}
Denne nøglefil skal være tilgængelig for kontoen NetworkService, som Devolutions Gateway kører under.
{% endhint %}

12. Klik på ***Næste***.
13. Klik på ***Installér***.

## **Start Cloudflared-klienten på værten med Remote Desktop Manager**

Cloudflared-klienten skal [downloades](https://github.com/cloudflare/cloudflared/releases) og startes for at tunnelere forbindelsen korrekt. Denne klient opretter en udgående Cloudflare-tunnelforbindelse fra enhver lokal Remote Desktop Manager-klient til den Cloudflare-tunnel, der forbinder til Devolutions Gateway.

Følgende kode skal køres i et terminalvindue, så længe tunnelen skal være åben, og hver gang en gateway bag en Cloudflare-tunnel skal tilgås. Den eksekverbare klient, der kan køres, er `cloudflared.exe` (De skal muligvis omdøbe den downloadede version). Brug den samme lokale port her som den TCP-lytteport, der er konfigureret i Devolutions Server eller Hub Business.

{% hint style="info" %}
Her demonstrerer vi det ved at bruge port `8182`. Hvis De aldrig har tænkt Dem at køre RDM på den samme server som Gateway-tjenesten, kan De bruge `8181`. Ellers får De en portkonflikt. En måde at undgå det på er at bruge en anden port, som vist her.
{% endhint %}

```
cloudflared.exe access tcp --hostname gateway-client-tcp.mydomain.com --url localhost:8182
```

Klientsoftwaren opretter forbindelse til `localhost:8182`, ikke til `gateway-client-tcp.mydomain.com:8181`. Fordi TLS-klienten validerer gateway-certifikatet mod `localhost`, skal gateway-certifikatet indeholde `localhost` i sin SAN. Hvis det ikke gør det, kan gateway-loggen vise `received fatal alert: CertificateUnknown`.

Opret en tjeneste for at undgå at køre koden hver gang:

1. Start en PowerShell-session med administratorrettigheder.
2. Angiv denne kode for at oprette en ny PowerShell-tjeneste:

   ```
   New-Service -Name "Cloudflared Egress" -BinaryPathName '"C:\Tools\cloudflared.exe" access tcp --hostname gateway-client-tcp.mydomain.com --url localhost:8182' -StartupType Automatic
   Start-Service -Name "Cloudflared Egress"
   ```
3. Start tjenesten.

Tunnelen kører nu permanent på klientsiden.

## **Konfigurer Devolutions Server**

1. Log på en instans af Devolutions Server som en bruger med adgang til konfigurationen af Devolutions Gateway.
2. Gå til ***Administration*** — ***Devolutions Gateway***.
3. Klik på knappen ***Tilføj*** (***+***), og vælg ***Gateway***.
4. Angiv de tidligere hentede oplysninger fra Cloudflare, der blev brugt til at konfigurere Devolutions Gateway.

Det kan være nødvendigt at sætte `https://` foran Cloudflare-tunneldomænet. ***Registrer automatisk*** virker kun, hvis HTTPS-værtsnavnet kan nås gennem Cloudflare.

{% hint style="info" %}
Sæt Gateway-URL'en til HTTPS-tunnelens værtsnavn, for eksempel <https://gateway.mydomain.com>. Sæt TCP-værtsnavnet til localhost, ikke det offentlige TCP-tunnelværtsnavn. Sæt TCP-lytteporten til den samme lokale port, som klientbroen bruger, for eksempel 8182.
{% endhint %}

{% hint style="warning" %}
Sørg for ikke at bruge TCP-porten i slutningen af Gateway-URL'en. Gateway-URL'en bruger Cloudflare HTTPS-værtsnavnet på 443. TCP-porten konfigureres separat som TCP-lytteporten.
{% endhint %}

5. Klik på ***Gem***.
6. Klik på ellipseknappen (***Mere***) ud for den netop konfigurerede gateway, og vælg ***Publicer tilbagekaldelsesliste***.
7. Hvis indstillingen ***Publicer Gateway-konfiguration*** er tilgængelig, bør den udføres før ***Publicer tilbagekaldelsesliste***.

## **Konfigurer Devolutions Cloud**

1. Log på en instans af Devolutions Cloud som en bruger med adgang til konfigurationen af Devolutions Gateway.
2. Gå til ***Administration*** — ***Devolutions Gateway***.
3. Klik på knappen ***Tilføj*** (***+***).
4. Angiv de tidligere hentede oplysninger fra Cloudflare, der blev brugt til at konfigurere Devolutions Gateway.

Det kan være nødvendigt at sætte https\:// foran Cloudflare-tunneldomænet. ***Registrer automatisk*** virker kun, hvis HTTPS-værtsnavnet kan nås gennem Cloudflare.

{% hint style="info" %}
Sæt Gateway-URL'en til HTTPS-tunnelens værtsnavn, for eksempel <https://gateway.mydomain.com>. Sæt TCP-værtsnavnet til localhost, ikke det offentlige TCP-tunnelværtsnavn. Sæt TCP-lytteporten til den samme lokale port, som klientbroen bruger, for eksempel 8182.
{% endhint %}

5. Gå gennem en hvilken som helst kombination af fanerne ***Vaults***, ***Grupper,*** eller ***Brugere*** for at afgøre, hvordan licenserne fordeles.
6. Klik på ***Tilføj***.
7. Klik på ellipseknappen (***Mere***) ud for den netop konfigurerede gateway, og vælg ***Publicer Gateway-konfiguration***.

## **Fejlfindingsnoter**

* `received fatal alert: CertificateUnknown` I gateway-loggen betyder det normalt, at en TLS-klient afviste gateway-certifikatet på grund af et SAN-/navnemismatch. I denne opsætning betyder det ofte, at TCP-værtsnavnet er `localhost`, men at `localhost` mangler i gateway-certifikatets SAN.
* En rød diagnosticering **TCP listening hostname configuration** angiver normalt, at DVLS ikke kan nå rå TCP på det konfigurerede værtsnavn. Hvis det peger på tunnelens offentlige FQDN, skal De ændre det til `localhost` og sikre, at den lokale bro `cloudflared access tcp` kører.
* **Certificate could not be verified** med tomme felter, efterfulgt af `Cannot read properties of null (reading 'thumbprint')`, betyder normalt, at gateway-registreringen ikke returnerede et certifikat, fordi tunnelen eller gatewayen ikke kunne nås. Ret først muligheden for at nå den.
* Cloudflare Error 1033 betyder, at Cloudflare ikke kan opløse tunnelen. Bekræft, at oprindelsens `cloudflared`-dæmon kører, og at tunnelstatus er **Connected**.


---

# 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/reverse-proxying/cloudflare-with-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.
