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

# Cloudflare mit Devolutions Gateway

{% hint style="warning" %}
Wichtiges Verhalten von Cloudflare Tunnel: Ein öffentlicher Hostname eines benannten Cloudflare-Tunnels stellt HTTP/HTTPS/WebSocket am Cloudflare-Edge über Port 443 bereit. Er stellt kein rohes TCP als hostname:port im öffentlichen Internet bereit. Für native RDM-TCP-Relay-Sitzungen muss jeder Client cloudflared access tcp ausführen, wodurch ein lokaler Listener wie localhost:8181 erstellt wird.
{% endhint %}

1. Melden Sie sich beim Cloudflare-Dashboard an.
2. Gehen Sie zum Abschnitt ***Zero Trust*** unter dem ***Cloudflare Dashboard***. Möglicherweise werden Sie aufgefordert, einen Plan zu wählen; der kostenlose Zero Trust-Plan funktioniert.

{% hint style="info" %}
Der kostenlose Cloudflare-Plan kann zum Installieren und Betreiben von Cloudflare-Tunneln verwendet werden. Beim kostenlosen Plan muss die öffentliche Domäne jedoch die vollständige DNS-Einrichtung verwenden, mit Cloudflare als autoritativem Nameserver.
{% endhint %}

3. Gehen Sie zu ***Networks*** – ***Tunnels & Mesh*** und klicken Sie auf ***Create a tunnel***.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6028_2026_2.png" alt=""><figcaption></figcaption></figure>

4. Wählen Sie ***Cloudflared*** und klicken Sie auf ***Next***.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6009_2026_2.png" alt=""><figcaption></figcaption></figure>

5. Geben Sie einen Namen ein und klicken Sie auf ***Save tunnel***.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6002_2026_2.png" alt=""><figcaption></figcaption></figure>

6. Wählen Sie das entsprechende Betriebssystem und die Architektur.
7. Laden Sie das Installationsprogramm über den angegebenen Link herunter.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6010_2026_2.png" alt=""><figcaption></figcaption></figure>

8. ***Kopieren*** Sie die Konfigurationszeichenfolge.
9. Führen Sie das Cloudflare-Installationsprogramm aus.
10. Kopieren Sie im Abschnitt ***Install and run a connector*** des Cloudflare-Installationsfensters den Befehl.
11. Öffnen Sie den Server, auf dem der Cloudflare-Tunnel-Daemon installiert ist, und öffnen Sie dann die ***Eingabeaufforderung*** als Administrator.
12. Fügen Sie die in Schritt 8 kopierte Konfigurationszeichenfolge ein und drücken Sie dann die Eingabetaste.

{% hint style="info" %}
Es ist ratsam zu überprüfen, ob der Status als Connected angezeigt wird.\
\
Wenn der Tunnel token- bzw. remoteverwaltet ist, verwendet er die im Cloudflare-Dashboard konfigurierten Ingress- und TLS-Einstellungen. Wenn Sie cloudflared stattdessen mit einer lokalen config.yml ausführen, die einen eigenen ingress:-Block definiert, werden die Dashboard-Einstellungen, einschließlich No TLS Verify, ignoriert.
{% endhint %}

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6005_2026_2.png" alt=""><figcaption></figcaption></figure>

13. Klicken Sie auf ***Next***.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6011_2026_2.png" alt=""><figcaption></figcaption></figure>

14. Geben Sie eine eindeutige Subdomäne ein.
15. Wählen Sie ***HTTPS*** als ***Type***. Wenn Sie ein selbstsigniertes Zertifikat oder ein Zertifikat einer internen CA für Devolutions Gateway verwenden, aktivieren Sie die Option No TLS Verify unter ***Additional application settings*** – ***TLS***.

{% hint style="info" %}
Verwenden Sie localhost:7171 als URL, wenn die Standardkonfiguration des Gateways verwendet wurde.
{% endhint %}

{% hint style="warning" %}
Lassen Sie die HTTP2-Verbindung für den HTTPS-Ingress deaktiviert. Devolutions Gateway verwendet WebSocket, und HTTP/2 zum Origin kann WebSocket-Upgrades beeinträchtigen.
{% endhint %}

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6012_2026_2.png" alt=""><figcaption></figcaption></figure>

16. Klicken Sie auf **Complete setup.**
17. Klicken Sie auf den neu erstellten ***Tunnel name***.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6015_2026_2.png" alt=""><figcaption></figcaption></figure>

18. Klicken Sie auf ***Published application routes*** und dann auf ***Add a published application route***.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6014_2026_2.png" alt=""><figcaption></figcaption></figure>

19. Geben Sie eine eindeutige Subdomäne ein (abweichend von Schritt 14).
20. Wählen Sie ***TCP*** als ***Type***. Geben Sie [`localhost:8181`](http://localhost:8181) ein, wenn der Standardport verwendet wird.

{% hint style="warning" %}
Cloudflare beendet TLS auf dem TCP-Pfad nicht, und es gibt keine TLS-Verify-Einstellung für TCP. Die TLS-Validierung erfolgt Ende-zu-Ende zwischen dem RDM-Client und Devolutions Gateway über die lokale cloudflared access tcp-Bridge.
{% endhint %}

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6016_2026_2.png" alt=""><figcaption></figcaption></figure>

Anschließend sollten zwei öffentliche Hostnamen vorhanden sein.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6017_2026_2.png" alt=""><figcaption></figcaption></figure>

## **Den Bereitstellungsschlüssel abrufen**

Die DVLS-Datei mit dem öffentlichen Schlüssel muss für den Server zugänglich sein, der Devolutions Gateway hostet und sich hinter dem Cloudflare-Tunnel befindet.

1. Melden Sie sich bei der Devolutions Server- oder Devolutions Cloud-Instanz als Benutzer mit Zugriff auf die Devolutions Gateway-Konfiguration an.
2. Gehen Sie zu ***Administration*** — ***Devolutions Gateway***.
3. Klicken Sie auf die Schaltfläche ***More*** und wählen Sie ***Download public key***.

## **Devolutions Gateway mit Cloudflare installieren**

1. Öffnen Sie eine Verbindung zum Server, der Devolutions Gateway hostet, und laden Sie das [Installationsprogramm](https://devolutions.net/gateway/) herunter.
2. Führen Sie das Installationsprogramm aus.
3. Klicken Sie auf ***Next***.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6018_2026_2.png" alt=""><figcaption></figcaption></figure>

4. Sobald der gewünschte Installationspfad ausgewählt ist, klicken Sie auf die Schaltfläche ***Next***.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6019_2026_2.png" alt=""><figcaption></figcaption></figure>

5. Klicken Sie auf ***Next***.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6020_2026_2.png" alt=""><figcaption></figcaption></figure>

6. Klicken Sie im Fenster ***Listeners*** auf ***Next***.

{% hint style="warning" %}
Es ist ratsam, die Standard-Listener beizubehalten, da sie wahrscheinlich der Cloudflare-Tunnelkonfiguration entsprechen.
{% endhint %}

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6021_2026_2.png" alt=""><figcaption></figcaption></figure>

7. Geben Sie die externe URI ein, über die das Gateway erreichbar sein wird.
8. Klicken Sie auf ***Next***.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6022_2026_2.png" alt=""><figcaption></figcaption></figure>

9. Geben Sie den Pfad zu den TLS-Zertifikaten oder zum Speicherort des Systemzertifikatspeichers an.

{% hint style="warning" %}
Das Gateway-Zertifikat muss jeden Namen enthalten, gegen den ein TLS-Client validiert. Beim Cloudflare-TCP-Bridge-Modell verbindet sich der Client mit `localhost:<port>,` daher muss localhost zusammen mit dem internen FQDN des Gateways im SAN des Zertifikats enthalten sein. Die öffentlichen Cloudflare-Tunnel-Hostnamen müssen in der Regel nicht im Gateway-Zertifikat enthalten sein.
{% endhint %}

10. Klicken Sie auf ***Next***.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6023_2026_2.png" alt=""><figcaption></figcaption></figure>

11. Geben Sie den Pfad zum zuvor von Devolutions Server oder Devolutions Cloud abgerufenen öffentlichen Schlüssel an.

{% hint style="info" %}
Diese Schlüsseldatei muss für das NetworkService-Konto zugänglich sein, unter dem Devolutions Gateway ausgeführt wird.
{% endhint %}

12. Klicken Sie auf ***Next***.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6024_2026_2.png" alt=""><figcaption></figcaption></figure>

13. Klicken Sie auf ***Install***.

## **Den Cloudflared-Client auf dem Remote Desktop Manager-Host starten**

Der Cloudflared-Client muss [heruntergeladen](https://github.com/cloudflare/cloudflared/releases) und gestartet werden, um die Verbindung ordnungsgemäß zu tunneln. Dieser Client erstellt eine ausgehende Cloudflare-Tunnelverbindung von jedem lokalen Remote Desktop Manager-Client zum Cloudflare-Tunnel, der sich mit Devolutions Gateway verbindet.

Der folgende Code muss in einem Terminalfenster ausgeführt werden, solange der Tunnel offen sein muss, und jedes Mal, wenn auf ein Gateway hinter einem Cloudflare-Tunnel zugegriffen wird. Die ausführbare Programmdatei des Clients ist `cloudflared.exe` (möglicherweise müssen Sie die heruntergeladene Version umbenennen). Verwenden Sie hier denselben lokalen Port wie den in Devolutions Server oder Hub Business konfigurierten TCP Listening Port.

{% hint style="info" %}
Hier veranschaulichen wir dies anhand von Port `8182`. Wenn Sie RDM niemals auf demselben Server wie den Gateway-Dienst betreiben möchten, könnten Sie `8181` verwenden, andernfalls käme es zu einem Portkonflikt. Eine Möglichkeit, dies zu vermeiden, ist die Verwendung eines anderen Ports, wie hier gezeigt.
{% endhint %}

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

Die Client-Software verbindet sich mit `localhost:8182`, nicht mit `gateway-client-tcp.mydomain.com:8181`. Da der TLS-Client das Gateway-Zertifikat gegen `localhost` validiert, muss das Gateway-Zertifikat `localhost` in seinem SAN enthalten. Andernfalls kann das Gateway-Protokoll `received fatal alert: CertificateUnknown` anzeigen.

Um den Code nicht jedes Mal ausführen zu müssen, erstellen Sie einen Dienst:

1. Starten Sie eine PowerShell-Sitzung mit erhöhten Rechten.
2. Geben Sie diesen Code ein, um einen neuen PowerShell-Dienst zu erstellen:

   ```
   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. Starten Sie den Dienst.

Der Tunnel läuft nun dauerhaft auf der Client-Seite.

## **Devolutions Server konfigurieren**

1. Melden Sie sich bei einer Devolutions Server-Instanz als Benutzer mit Zugriff auf die Devolutions Gateway-Konfiguration an.
2. Gehen Sie zu ***Administration*** — ***Devolutions Gateway***.
3. Klicken Sie auf die Schaltfläche ***Add*** (***+***) und wählen Sie ***Gateway***.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DVLS6009_2026_2.png" alt=""><figcaption></figcaption></figure>

4. Geben Sie die zuvor von Cloudflare abgerufenen Details ein, die zur Konfiguration von Devolutions Gateway verwendet wurden.

Möglicherweise muss der Cloudflare-Tunnel-Domäne `https://` vorangestellt werden. ***Auto-detect*** funktioniert nur, wenn der HTTPS-Hostname über Cloudflare erreichbar ist.

{% hint style="info" %}
Setzen Sie die Gateway-URL auf den HTTPS-Tunnel-Hostnamen, zum Beispiel <https://gateway.mydomain.com>. Setzen Sie den TCP Hostname auf localhost, nicht auf den öffentlichen TCP-Tunnel-Hostnamen. Setzen Sie den TCP Listening Port auf denselben lokalen Port, der von der Client-Bridge verwendet wird, zum Beispiel 8182.
{% endhint %}

{% hint style="warning" %}
Achten Sie darauf, den TCP-Port nicht am Ende der Gateway-URL zu verwenden. Die Gateway-URL verwendet den Cloudflare-HTTPS-Hostnamen auf 443; der TCP-Port wird separat als TCP Listening Port konfiguriert.
{% endhint %}

5. Klicken Sie auf ***Save***.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6025_2026_2.png" alt=""><figcaption></figcaption></figure>

6. Klicken Sie auf die Auslassungspunkte (***More***) neben dem neu konfigurierten Gateway und wählen Sie ***Publish revocation list***.
7. Wenn die Option ***Publish Gateway configuration*** verfügbar ist, sollte sie vor ***Publish revocation list*** ausgeführt werden.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DVLS6011_2026_2.png" alt=""><figcaption></figcaption></figure>

## **Devolutions Cloud konfigurieren**

1. Melden Sie sich bei einer Devolutions Cloud-Instanz als Benutzer mit Zugriff auf die Devolutions Gateway-Konfiguration an.
2. Gehen Sie zu ***Administration*** — ***Devolutions Gateway***.
3. Klicken Sie auf die Schaltfläche ***Add*** (***+***).
4. Geben Sie die zuvor von Cloudflare abgerufenen Details ein, die zur Konfiguration von Devolutions Gateway verwendet wurden.

Möglicherweise muss der Cloudflare-Tunnel-Domäne https\:// vorangestellt werden. ***Auto-Detect*** funktioniert nur, wenn der HTTPS-Hostname über Cloudflare erreichbar ist.

{% hint style="info" %}
Setzen Sie die Gateway-URL auf den HTTPS-Tunnel-Hostnamen, zum Beispiel <https://gateway.mydomain.com>. Setzen Sie den TCP Hostname auf localhost, nicht auf den öffentlichen TCP-Tunnel-Hostnamen. Setzen Sie den TCP Listening Port auf denselben lokalen Port, der von der Client-Bridge verwendet wird, zum Beispiel 8182.
{% endhint %}

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DGW6027_2026_2.png" alt=""><figcaption></figcaption></figure>

5. Gehen Sie eine beliebige Kombination der Registerkarten ***Tresore***, ***Gruppen*** oder ***Benutzer*** durch, um festzulegen, wie die Lizenzen verteilt werden.
6. Klicken Sie auf ***Add***.
7. Klicken Sie auf die Auslassungspunkte (***More***) neben dem neu konfigurierten Gateway und wählen Sie ***Publish Gateway configuration***.

<figure><img src="https://webdevolutions.blob.core.windows.net/docs/DVLS6013_2026_2.png" alt=""><figcaption></figcaption></figure>

## **Hinweise zur Fehlerbehebung**

* `received fatal alert: CertificateUnknown` Im Gateway-Protokoll bedeutet dies normalerweise, dass ein TLS-Client das Gateway-Zertifikat aufgrund einer SAN-/Namensabweichung abgelehnt hat. In diesem Setup bedeutet das häufig, dass der TCP Hostname `localhost` ist, aber `localhost` im SAN des Gateway-Zertifikats fehlt.
* Eine rote Diagnose **TCP listening hostname configuration** weist normalerweise darauf hin, dass DVLS rohes TCP auf dem konfigurierten Hostnamen nicht erreichen kann. Wenn sie auf den öffentlichen Tunnel-FQDN verweist, ändern Sie diesen auf `localhost` und stellen Sie sicher, dass die lokale `cloudflared access tcp`-Bridge läuft.
* **Certificate could not be verified** mit leeren Feldern, gefolgt von `Cannot read properties of null (reading 'thumbprint')`, bedeutet üblicherweise, dass die Gateway-Erkennung kein Zertifikat zurückgegeben hat, weil der Tunnel oder das Gateway nicht erreichbar war. Beheben Sie zuerst die Erreichbarkeit.
* Cloudflare-Fehler 1033 bedeutet, dass Cloudflare den Tunnel nicht auflösen kann. Stellen Sie sicher, dass der `cloudflared`-Daemon am Origin läuft und der Tunnelstatus **Connected** ist.


---

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