Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Certificati SSL/TLS

Introduzione

Spesso si preferisce usare connessioni TLS (note anche come connessioni SSL) per le comunicazioni, pur di evitare attacchi "man in the middle". Godot dispone di un wrapper di connessione, StreamPeerTLS, che può accettare una connessione standard e aggiungervi sicurezza. Anche le classi HTTPClient e HTTPRequest supportano HTTPS attraverso lo stesso wrapper.

Godot tenterà di utilizzare il pacchetto di certificati TLS fornito dal sistema operativo, ma include anche il pacchetto di certificati TLS di Mozilla come alternativa di riserva.

In alternativa, è possibile forzare il proprio pacchetto di certificati nelle Impostazioni del progetto:

Setting the TLS certificate bundle override project setting

Setting the TLS certificate bundle override project setting

Se impostato, questo file sovrascrive il pacchetto predefinito fornito dal sistema operativo. Questo file dovrebbe contenere un numero qualsiasi di certificati pubblici in formato PEM.

Ci sono due modi per ottenere i certificati:

Ottenere un certificato da un'autorità di certificazione

L'approccio principale per ottenere un certificato è utilizzare un'autorità di certificazione (CA) come Let's Encrypt. È un processo più macchinoso rispetto a un certificato auto-firmato, ma è più "ufficiale" e garantisce che la propria identità sia chiaramente rappresentata. Il certificato risultante è inoltre considerato attendibile da applicazioni come i browser web, a differenza di un certificato auto-firmato che richiede una configurazione aggiuntiva lato client prima di essere considerato attendibile.

Per funzionare, questi certificati non richiedono alcuna configurazione sul client, poiché Godot integra già il pacchetto di certificati Mozilla nell'editor e nei progetti esportati.

Generare un certificato auto-firmato

Nella maggioranza dei casi d'uso, si consiglia di rivolgersi a un'autorità di certificazione, poiché il processo è gratuito con autorità di certificazione come Let's Encrypt. Tuttavia, se non è possibile utilizzare un'autorità di certificazione, è possibile generare un certificato auto-firmato e indicare al client di considerarlo attendibile.

Per creare un certificato auto-firmato, generare una coppia di chiavi privata e pubblica e aggiungere la chiave pubblica (in formato PEM) al file CRT specificato nelle Impostazioni del progetto.

Avvertimento

La chiave privata deve essere inviata solo al server. Il client non deve avervi accesso: altrimenti, la sicurezza del certificato sarà compromessa.

Avvertimento

Quando si specifica un certificato auto-firmato come pacchetto TLS nelle impostazioni del progetto, la normale convalida del nome di dominio è applicata tramite il CN del certificato e nomi alternativi. Consultare TLSOptions per personalizzare la convalida del nome di dominio.

Per scopi di sviluppo, Godot può generare certificati auto-firmati tramite Crypto.generate_self_signed_certificate.

In alternativa, OpenSSL dispone di documentazione sulla generazione di chiavi e certificati.