Skip to content

SSL/TLS e tunnel SSH

Due problemi diversi, due schede diverse nella finestra di connessione. SSL/TLS cifra la connessione al database. Un tunnel SSH trasporta una connessione non cifrata attraverso un server di cui ti fidi già.

Si possono usare entrambi insieme.

SSL/TLS

I database in cloud — AWS RDS, Supabase, PlanetScale, Azure SQL — di norma lo richiedono.

Spunta Abilita SSL/TLS, poi scegli una modalità:

ModalitàCosa fa
DisabilitaNessuna cifratura. Sconsigliato
PreferisciUsa SSL se il server lo supporta, altrimenti connessione in chiaro
RichiediUsa sempre SSL, ma non verifica il certificato
Verifica CASSL con verifica del certificato rispetto alla CA
Verifica completaSSL, verifica della CA e del nome host

Per SQL Server la stessa impostazione si chiama Livello di crittografia.

Certificati

Tre percorsi facoltativi permettono di fornire materiale proprio:

  • Certificato CA — necessario per Verifica CA e Verifica completa quando il server usa una CA privata.
  • Certificato client e Chiave privata — per i server che richiedono TLS reciproco.

Accetta certificati self-signed salta del tutto la validazione del certificato. Fa funzionare una macchina di sviluppo in pochi secondi e rimuove la protezione per cui TLS esiste: non lasciarlo attivo su una connessione di produzione.

Tunnel SSH

Con un tunnel NabuSQL si collega prima al server SSH e poi instrada la connessione al database attraverso di esso. È così che si raggiunge un database in ascolto solo su localhost di una macchina remota.

Host e porta si risolvono sul server SSH

Host e porta della scheda Base sono interpretati dal punto di vista del server SSH. Per un database sulla stessa macchina del server SSH ciò significa localhost e la porta abituale del database — non l'indirizzo pubblico del server.

Spunta Abilita tunnel SSH e compila:

  • Host, Porta e Utente del server SSH.
  • Autenticazione: Password oppure Chiave.
  • Per la chiave: il percorso del file della chiave privata e la passphrase se la chiave è cifrata.

Un esempio pratico

Un server PostgreSQL su db.example.com accetta SSH ma il database ascolta solo su 127.0.0.1:5432:

SchedaCampoValore
BaseHost127.0.0.1
BasePorta5432
Tunnel SSHHostdb.example.com
Tunnel SSHPorta22
Tunnel SSHUtenteil tuo utente SSH

Risoluzione dei problemi

Connection refused attraverso il tunnel — l'host del database viene risolto sul server SSH. Verifica che il valore funzioni eseguendo psql -h <host> mentre sei collegato a quel server.

Certificate verify failed — il server presenta un certificato firmato da una CA che il tuo sistema non conosce. Fornisci il certificato CA invece di passare a Richiedi.

Chiave SSH rifiutata — controlla che la chiave privata corrisponda alla chiave pubblica in authorized_keys e che la passphrase sia inserita se la chiave ne ha una.