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 |
|---|---|
| Disabilita | Nessuna cifratura. Sconsigliato |
| Preferisci | Usa SSL se il server lo supporta, altrimenti connessione in chiaro |
| Richiedi | Usa sempre SSL, ma non verifica il certificato |
| Verifica CA | SSL con verifica del certificato rispetto alla CA |
| Verifica completa | SSL, 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:
| Scheda | Campo | Valore |
|---|---|---|
| Base | Host | 127.0.0.1 |
| Base | Porta | 5432 |
| Tunnel SSH | Host | db.example.com |
| Tunnel SSH | Porta | 22 |
| Tunnel SSH | Utente | il 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.
