2016-09-16 101 views
1

我花了幾個小時試圖讓.NET FtpWebRequest庫與使用基於SSL的vsftpd與我的Ubuntu 16.04 FTP服務器進行通信。使用SSL將C#FtpWebRequest發送到Ubuntu VSFTPD

無論我嘗試什麼,我總是以「SSPI調用失敗,收到的消息意外或格式不正確爲例」。

我已經嘗試生成客戶端和服務器證書,將它們安裝在窗口中,使用.NET中的X509類加載它們,切換各種客戶端和服務器端選項。無論我做什麼,總會有同樣的錯誤。我相信這與我的證書沒有經過權威機構驗證有關。這裏是我的基本問題:

1).NET只能接受一個可疑的證書嗎?!安裝它30種不同的方式似乎沒有影響?

2)「打電話給SSPI失敗」是什麼意思?我讀過相互矛盾的答案。我沒有問題通過FileZilla與TLS/SSL連接,但.NET 4.5不會。

3)有人可以通過使用vsftpd over SSL連接到Linux服務器來讓最少量的步驟讓Windows 7客戶端使用.NET框架嗎?我堅信,問題在於我的Windows/.NET設置,因爲我的Windows機器上的FileZilla沒有連接問題。

預先感謝您。

+0

你可以分享你的C#代碼? – sly

+0

嘗試連接到列出的ftps服務器[here](http://test.rebex.net/)。您可以通過添加以下代碼來繞過服務器證書驗證:ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);和相應的方法public static bool ValidateServerCertificate(object sender,X509Certificate certificate,X509Chain chain,SslPolicyErrors sslPolicyErrors){return true; }' – sly

+0

我已經使用委託{return true; }爲ServerCertificateValidationCallback成員。此時,由於證書的主機名與客戶端請求的服務器不匹配,我認爲這些調用失敗。我還沒有花時間對此進行調查。 – AirmanAJK

回答

-1

插入下面的一行在你的vsftpd.conf:

ssl_ciphers=AES128-SHA 
相關問題