2016-09-16 13 views
1

J'ai passé des heures à essayer d'obtenir que la bibliothèque .NET FtpWebRequest communique avec mon serveur FTP Ubuntu 16.04 en utilisant vsftpd via SSL.C# FtpWebRequest avec SSL à Ubuntu VSFTPD

Peu importe ce que j'essaie, je me retrouve toujours avec l'exception "Un appel à SSPI a échoué.Le message reçu était inattendu ou mal formaté."

J'ai essayé de générer des certificats client et serveur, en les installant dans Windows, en les chargeant avec la classe X509 dans .NET, en basculant diverses options côté client et côté serveur. Peu importe ce que je fais, c'est toujours la même erreur. Je crois que cela a quelque chose à voir avec mon certificat qui n'a pas été vérifié par une autorité. Voici mes questions de base:

1) .NET peut-il ACCEPTER un certificat suspect ?! L'installer de 30 manières différentes semble n'avoir aucun effet?

2) Qu'est-ce que "un appel à SSPI a échoué"? J'ai lu des réponses contradictoires. Je n'ai aucun problème pour me connecter avec TLS/SSL via FileZilla, mais .NET 4.5 ne l'aura tout simplement pas.

3) Quelqu'un peut-il donner le minimum d'étapes pour qu'un client Windows 7 utilisant le framework .NET se connecte à un serveur Linux en utilisant vsftpd via SSL? Je crois fermement que le problème réside dans mes paramètres Windows /. NET depuis FileZilla sur ma machine Windows n'a aucun problème à se connecter.

Merci d'avance.

+0

Pouvez-vous partager votre code C#? – sly

+0

Essayez de vous connecter au serveur ftps listé [ici] (http://test.rebex.net/). Vous pouvez contourner la validation du certificat de serveur en ajoutant le code suivant 'ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback (ValidateServerCertificate);' et la méthode correspondante 'public static bool ValidateServerCertificate (expéditeur d'objet, certificat X509Certificate, chaîne X509Chain, SslPolicyErrors sslPolicyErrors) {return true; } ' – sly

+0

J'ai utilisé le délégué {return true; } pour le membre ServerCertificateValidationCallback. À ce stade, je crois que les appels échouent en raison du nom d'hôte du certificat ne correspondant pas au serveur demandé en fonction du client. Je n'ai pas pris le temps d'enquêter sur cela pour le moment. – AirmanAJK

Répondre

-1

Insérez la ligne ci-dessous dans votre vsftpd.conf:

ssl_ciphers=AES128-SHA