2016-09-16 13 views
1

Я потратил часы, пытаясь получить библиотеку .NET FtpWebRequest для связи с моим FTP-сервером Ubuntu 16.04, используя vsftpd через SSL.C# FtpWebRequest с SSL для Ubuntu VSFTPD

Независимо от того, что я пытаюсь, я всегда получаю исключение «Не удалось выполнить вызов SSPI. Полученное сообщение было неожиданным или сильно отформатированным».

Я пробовал генерировать сертификаты клиентов и серверов, устанавливая их в Windows, загружая их с классом X509 в .NET, переключая различные варианты на стороне клиента и сервера. Независимо от того, что я делаю, это всегда одна и та же ошибка. Я считаю, что это связано с тем, что мой сертификат не проверен авторитетом. Вот основные вопросы:

1) Может ли .NET ПРИНИМАТЬ подозрительный сертификат ?! Устанавливать его 30 разных способов, похоже, не влияет?

2) Что означает «вызов SSPI сбой»? Я читал противоречивые ответы. У меня нет проблем с подключением к TLS/SSL через FileZilla, но .NET 4.5 просто не будет.

3) Может ли кто-нибудь дать минимальное количество шагов, чтобы клиент Windows 7 с использованием платформы .NET подключался к серверу Linux с помощью vsftpd через SSL? Я твердо верю, что проблема заключается в моих настройках Windows/.NET, поскольку FileZilla на моей машине Windows не вызывает проблем с подключением.

Заранее спасибо.

+0

Можете ли вы поделиться C# код? – sly

+0

Попробуйте подключиться к ftps-серверу, указанному здесь (здесь) (http://test.rebex.net/). Вы можете обойти проверку сертификата сервера, добавив следующий код: ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback (ValidateServerCertificate); 'и соответствующий метод' public static bool ValidateServerCertificate (отправитель объекта, сертификат X509Certificate, цепочка X509Chain, SslPolicyErrors sslPolicyErrors) {return true; } ' – sly

+0

Я использовал делегат {return true; } для члена ServerCertificateValidationCallback. На данный момент я считаю, что вызовы терпят неудачу из-за имени хоста сертификата, не соответствующего запрашиваемому серверу в соответствии с клиентом. Я пока не нашел времени, чтобы исследовать это. – AirmanAJK

ответ

-1

Вставьте строку ниже в вашем vsftpd.conf:

ssl_ciphers=AES128-SHA