> 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/it/knowledge-base/how-to-articles/reverse-proxying/cloudflare-with-devolutions-gateway.md).

# Cloudflare con Devolutions Gateway

{% hint style="warning" %}
Comportamento importante di Cloudflare Tunnel: un hostname pubblico di un tunnel denominato Cloudflare serve HTTP/HTTPS/WebSocket sull'edge Cloudflare sulla porta 443. Non espone TCP raw come hostname:port sulla rete internet pubblica. Per le sessioni native di relay TCP di RDM, ogni client deve eseguire cloudflared access tcp, che crea un listener locale come localhost:8181.
{% endhint %}

1. Acceda alla dashboard di Cloudflare.
2. Vada alla sezione ***Zero Trust*** sotto la ***Cloudflare Dashboard***. Potrebbe esserle richiesto di scegliere un piano; il piano gratuito Zero Trust funzionerà.

{% hint style="info" %}
Il piano gratuito di Cloudflare può essere utilizzato per installare ed eseguire i tunnel Cloudflare. Tuttavia, con il piano gratuito, il dominio pubblico deve utilizzare il full setup DNS, con Cloudflare come nameserver autoritativo.
{% endhint %}

3. Vada su ***Networks*** – ***Tunnels & Mesh*** e clicchi su ***Create a tunnel***.

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

4. Selezioni ***Cloudflared*** e clicchi su ***Next***.

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

5. Inserisca un nome e clicchi su ***Save tunnel***.

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

6. Scelga il sistema operativo e l'architettura appropriati.
7. Scarichi il programma di installazione tramite il link fornito.

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

8. ***Copi*** la stringa di configurazione.
9. Esegua il programma di installazione di Cloudflare.
10. Nella sezione ***Install and run a connector*** della finestra di installazione di Cloudflare, copi il comando.
11. Apra il server su cui è installato il daemon del tunnel Cloudflare, quindi apra il ***Prompt dei comandi*** come amministratore.
12. Incolli la stringa di configurazione copiata al passaggio 8, quindi prema Invio.

{% hint style="info" %}
È consigliabile verificare che lo Status risulti Connected.\
\
Se il tunnel è gestito tramite token/da remoto, utilizza le impostazioni di ingress e TLS configurate nella dashboard di Cloudflare. Se invece esegue cloudflared con un file config.yml locale che definisce un proprio blocco ingress:, le impostazioni della dashboard, inclusa No TLS Verify, vengono ignorate.
{% endhint %}

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

13. Clicchi su ***Next***.

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

14. Inserisca un sottodominio univoco.
15. Scelga ***HTTPS*** come ***Type***. Quando si utilizza un certificato autofirmato o un certificato di una CA interna per Devolutions Gateway, abiliti l'opzione No TLS Verify sotto ***Additional application settings*** – ***TLS***.

{% hint style="info" %}
Utilizzi localhost:7171 come URL se è stata usata la configurazione predefinita del gateway.
{% endhint %}

{% hint style="warning" %}
Mantenga la connessione HTTP2 disattivata per l'ingress HTTPS. Devolutions Gateway utilizza WebSocket e HTTP/2 verso l'origine può interrompere gli upgrade WebSocket.
{% endhint %}

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

16. Clicchi su **Complete setup.**
17. Clicchi sul ***Tunnel name*** appena creato.

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

18. Clicchi su ***Published application routes*** e poi su ***Add a published application route***.

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

19. Inserisca un sottodominio univoco (diverso da quello del passaggio 14).
20. Scelga ***TCP*** come ***Type***. Inserisca [`localhost:8181`](http://localhost:8181) se utilizza la porta predefinita.

{% hint style="warning" %}
Cloudflare non termina il TLS sul percorso TCP e non esiste un'impostazione TLS Verify per TCP. La validazione TLS avviene end-to-end tra il client RDM e Devolutions Gateway attraverso il bridge locale cloudflared access tcp.
{% endhint %}

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

Al termine, dovrebbero esserci due hostname pubblici.

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

## **Recuperare la chiave di provisioning**

Il file della chiave pubblica DVLS deve essere accessibile al server che ospita Devolutions Gateway, che si trova dietro il tunnel Cloudflare.

1. Acceda all'istanza di Devolutions Server o Devolutions Cloud come utente con accesso alla configurazione di Devolutions Gateway.
2. Vada su ***Administration*** — ***Devolutions Gateway***.
3. Clicchi sul pulsante ***More*** e selezioni ***Download public key***.

## **Installare Devolutions Gateway con Cloudflare**

1. Apra una connessione al server che ospita Devolutions Gateway e scarichi il [programma di installazione](https://devolutions.net/gateway/).
2. Esegua il programma di installazione.
3. Clicchi su ***Next***.

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

4. Una volta selezionato il percorso di installazione desiderato, clicchi sul pulsante ***Next***.

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

5. Clicchi su ***Next***.

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

6. Clicchi su ***Next*** nella finestra ***Listeners***.

{% hint style="warning" %}
È consigliabile lasciare i listener predefiniti, poiché probabilmente corrisponderanno alla configurazione del tunnel Cloudflare.
{% endhint %}

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

7. Inserisca l'URI esterno tramite il quale il gateway sarà raggiungibile.
8. Clicchi su ***Next***.

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

9. Specifichi il percorso dei certificati TLS o la posizione dell'archivio certificati di sistema.

{% hint style="warning" %}
Il certificato del gateway deve includere ogni nome rispetto al quale un client TLS effettua la validazione. Per il modello di bridge TCP Cloudflare, il client si connette a `localhost:<port>,` quindi localhost deve essere presente nel SAN del certificato, insieme all'FQDN interno del gateway. Gli hostname pubblici del tunnel Cloudflare normalmente non devono essere presenti nel certificato del gateway.
{% endhint %}

10. Clicchi su ***Next***.

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

11. Specifichi il percorso della chiave pubblica precedentemente recuperata da Devolutions Server o Devolutions Cloud.

{% hint style="info" %}
Questo file di chiave deve essere accessibile all'account NetworkService con cui viene eseguito Devolutions Gateway.
{% endhint %}

12. Clicchi su ***Next***.

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

13. Clicchi su ***Install***.

## **Avviare il client Cloudflared sull'host di Remote Desktop Manager**

Il client Cloudflared deve essere [scaricato](https://github.com/cloudflare/cloudflared/releases) e avviato per instradare correttamente la connessione nel tunnel. Questo client creerà una connessione tunnel Cloudflare in uscita da qualsiasi client Remote Desktop Manager locale verso il tunnel Cloudflare che si connette a Devolutions Gateway.

Il codice seguente deve essere eseguito in una finestra di terminale per tutto il tempo in cui il tunnel deve rimanere aperto, e ogni volta che si accede a un gateway dietro un tunnel Cloudflare. L'eseguibile del client è `cloudflared.exe` (anche se potrebbe essere necessario rinominare la versione scaricata). Utilizzi qui la stessa porta locale della TCP Listening Port configurata in Devolutions Server o Hub Business.

{% hint style="info" %}
Qui lo dimostriamo utilizzando la porta `8182`. Se prevede di non eseguire mai RDM sullo stesso server del servizio Gateway, potrebbe usare `8181`, altrimenti si verificherebbe un conflitto di porte. Un modo per evitarlo è utilizzare una porta diversa, come mostrato qui.
{% endhint %}

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

Il software client si connette a `localhost:8182`, non a `gateway-client-tcp.mydomain.com:8181`. Poiché il client TLS convalida il certificato del gateway rispetto a `localhost`, il certificato del gateway deve includere `localhost` nel proprio SAN. In caso contrario, il log del gateway potrebbe mostrare `received fatal alert: CertificateUnknown`.

Per evitare di eseguire il codice ogni volta, crei un servizio:

1. Avvii una sessione PowerShell con privilegi elevati.
2. Inserisca questo codice per creare un nuovo servizio PowerShell:

   ```
   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. Avvii il servizio.

Il tunnel ora è in esecuzione in modo permanente sul lato client.

## **Configurare Devolutions Server**

1. Acceda a un'istanza di Devolutions Server come utente con accesso alla configurazione di Devolutions Gateway.
2. Vada su ***Administration*** — ***Devolutions Gateway***.
3. Clicchi sul pulsante ***Add*** (***+***) e scelga ***Gateway***.

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

4. Inserisca i dettagli precedentemente recuperati da Cloudflare utilizzati per configurare Devolutions Gateway.

Potrebbe essere necessario anteporre `https://` al dominio del tunnel Cloudflare. La funzione ***Auto-detect*** funzionerà solo se l'hostname HTTPS è raggiungibile tramite Cloudflare.

{% hint style="info" %}
Imposti il Gateway URL sull'hostname del tunnel HTTPS, ad esempio <https://gateway.mydomain.com>. Imposti il TCP Hostname su localhost, non sull'hostname pubblico del tunnel TCP. Imposti la TCP Listening Port sulla stessa porta locale utilizzata dal bridge client, ad esempio 8182.
{% endhint %}

{% hint style="warning" %}
Si assicuri di non utilizzare la porta TCP alla fine del Gateway URL. Il Gateway URL utilizza l'hostname HTTPS di Cloudflare sulla porta 443; la porta TCP viene configurata separatamente come TCP Listening Port.
{% endhint %}

5. Clicchi su ***Save***.

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

6. Clicchi sul pulsante con i puntini di sospensione (***More***) accanto al gateway appena configurato e selezioni ***Publish revocation list***.
7. Se l'opzione ***Publish Gateway configuration*** è disponibile, dovrebbe essere eseguita prima di ***Publish revocation list***.

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

## **Configurare Devolutions Cloud**

1. Acceda a un'istanza di Devolutions Cloud come utente con accesso alla configurazione di Devolutions Gateway.
2. Vada su ***Administration*** — ***Devolutions Gateway***.
3. Clicchi sul pulsante ***Add*** (***+***).
4. Inserisca i dettagli precedentemente recuperati da Cloudflare utilizzati per configurare Devolutions Gateway.

Potrebbe essere necessario anteporre https\:// al dominio del tunnel Cloudflare. La funzione ***Auto-Detect*** funzionerà solo se l'hostname HTTPS è raggiungibile tramite Cloudflare.

{% hint style="info" %}
Imposti il Gateway URL sull'hostname del tunnel HTTPS, ad esempio <https://gateway.mydomain.com>. Imposti il TCP Hostname su localhost, non sull'hostname pubblico del tunnel TCP. Imposti la TCP Listening Port sulla stessa porta locale utilizzata dal bridge client, ad esempio 8182.
{% endhint %}

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

5. Utilizzi qualsiasi combinazione delle schede ***Vaults***, ***Groups,*** o ***Users*** per decidere come verranno distribuite le licenze.
6. Clicchi su ***Add***.
7. Clicchi sul pulsante con i puntini di sospensione (***More***) accanto al gateway appena configurato e selezioni ***Publish Gateway configuration***.

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

## **Note per la risoluzione dei problemi**

* `received fatal alert: CertificateUnknown` Nel log del gateway, questo di solito significa che un client TLS ha rifiutato il certificato del gateway a causa di una mancata corrispondenza tra SAN e nome. In questa configurazione, ciò spesso significa che il TCP Hostname è `localhost` ma `localhost` non è presente nel SAN del certificato del gateway.
* Un messaggio diagnostico rosso **TCP listening hostname configuration** indica di solito che DVLS non riesce a raggiungere il TCP raw sull'hostname configurato. Se punta all'FQDN pubblico del tunnel, lo modifichi in `localhost` e verifichi che il bridge locale `cloudflared access tcp` sia in esecuzione.
* **Certificate could not be verified** con campi vuoti, seguito da `Cannot read properties of null (reading 'thumbprint')`, di solito significa che il rilevamento del gateway non ha restituito alcun certificato perché il tunnel o il gateway non erano raggiungibili. Risolva prima la raggiungibilità.
* L'errore Cloudflare 1033 significa che Cloudflare non riesce a risolvere il tunnel. Verifichi che il daemon `cloudflared` di origine sia in esecuzione e che lo stato del tunnel sia **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 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/it/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.
