Visual Studio FTP TLS/SSL

in Informatica, Programmazione

Pubblicazione da Visual Studio usando FTP e TLS/SSL

La pubblicazione di un sito tramite Visual Studio è uno strumento molto utilizzato da molti sviluppatori. Con il passare del tempo molti siti hanno bloccato i metodi classici di pubblicazione come Web Deploy, FTP standard e Accesso al file system, soprattutto per ragioni di sicurezza. Al tempo stesso, sono stati implementati nuovi meccanismi di pubblicazione che consentono una maggiore semplicità e il deploy di applicazione in ambienti differenti.

Recentemente mi sono imbattuto in uno scenario in cui la pubblicazione poteva avvenire tramite FTP e TLS. Cercando di validare la connessione da Visual Studio, la connessione veniva rifiutata (mostrando la richiesta di password ed un messaggio di credenziali errate).

Ovviamente la soluzione più rapida poteva essere quella di utilizzare un client ftp (come Filezilla) che al primo tentativo di connessione richiede il salvataggio in locale del certificato. Effettuando la pubblicazione in una cartella locale e procedendo con il client ftp il problema si risolve.

Effettuare però due passaggi per il deploy dell’applicazione non è sicuramente la soluzione ottimale, soprattutto in termini di velocità.

Facendo un pò di ricerche sulla rete ho scoperto che Visual Studio utilizza per default la porta 21, quando viene specificata una connessione FTP.

Per l’autenticazione delle connessioni SSL/TLS vengono utilizzati certificati digitali. In base alla modalità di emissione del certificato può essere necessaria l’installazione dello stesso sull’host locale. Esistono due possibili implementazioni del protocollo ftps: implicita ed esplicita. Nell’implementazione implicita non viene effettuata la negoziazione tra client e server, come da RFC 4217. Nella modalità esplicita è prevista la negoziazione del meccanismo di sicurezza per poi passare ad un metodo di crittografia concordato tra client e server.

La porta utilizzata da una connessione TLS/SSL implicita è la 990, diversamente da quello che avviene utilizzando TLS/SSL esplicito che utilizza la porta 21.

Nel caso di Visual Studio e’ sufficiente modificare il nome del server indicando anche la porta, per effettuare la connessione.