Un'opzione generalmente utilizzata dalle organizzazioni per inoltrare una connessione TCP in chiaro sulla rete è SSH locale e il port forwarding remoto. SSH collega una porta localmente e inoltra tutto il traffico al computer remoto su SSH.
Questa è un'ottima soluzione per una serie di motivi, vale a dire che si ottiene la crittografia dei messaggi e l'autenticità dei messaggi, e si ha anche una certa garanzia di autorizzazione in quanto l'utente deve avere accesso SSH alla macchina (e root se il porta è sotto 1024).
Tuttavia, nel caso in cui volessi che la crittografia e l'autenticità dei messaggi senza volessero l'autenticazione di per sé, non sono sicuro di un'altra soluzione esistente.
Quello che ero in grado di immaginare, tuttavia, è una configurazione server / agente che avvolgere TLS e fare port forwarding dove necessario. Dite che ho bisogno di eseguire Redis su Internet (perché è oltre il punto, se vi state chiedendo il perché, chiedete un altro servizio che si adatti al meglio alla vostra immaginazione). Una soluzione decente sarebbe quella di eseguire un processo sul server Redis che si collegava a una determinata porta e fungeva da proxy TLS. Dovresti eseguire un intero handshake TLS per connetterti e trasferire dati a questo proxy.
La seconda metà dell'equazione sarebbe quella di eseguire qualcosa sul lato client sui server che devono connettersi a Redis. Ciò dovrebbe di nuovo ascoltare su una porta locale, ma inoltrare il traffico su TLS al suddetto proxy TLS.
Esiste una tale tecnologia? Mi piacerebbe l'eventuale possibilità di utilizzare i certificati SSL lato client per l'autenticazione, ma il semplice upgrade a TLS su testo in chiaro è un vantaggio enorme a mio parere.