【问题标题】:C# FtpWebRequest with SSL to Ubuntu VSFTPD带有 SSL 的 C# FtpWebRequest 到 Ubuntu VSFTPD
【发布时间】:2016-09-16 04:34:12
【问题描述】:

我花了几个小时试图让 .NET FtpWebRequest 库使用 vsftpd over SSL 与我的 Ubuntu 16.04 FTP 服务器通信。

无论我尝试什么,我总是以异常“对 SSPI 的调用失败。收到的消息是意外的或格式错误。”

我尝试生成客户端和服务器证书,将它们安装在 Windows 中,使用 .NET 中的 X509 类加载它们,切换各种客户端和服务器端选项。无论我做什么,它总是同样的错误。我相信这与我的证书没有得到权威机构的验证有关。以下是我的基本问题:

1) .NET 可以只接受可疑证书吗?! 30种不同的安装方式好像都没有影响?

2) “调用 SSPI 失败”的真正含义是什么?我读过相互矛盾的答案。我通过 FileZilla 连接 TLS/SSL 没有问题,但 .NET 4.5 就没有它。

3) 谁能给出最少的步骤,让使用 .NET 框架的 Windows 7 客户端连接到使用 vsftpd over SSL 的 Linux 服务器?我坚信问题出在我的 Windows/.NET 设置上,因为我的 Windows 机器上的 FileZilla 连接没有问题。

提前谢谢你。

【问题讨论】:

  • 你能分享你的c#代码吗?
  • 尝试连接到here 列出的 ftps 服务器。您可以通过添加以下代码ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);和对应的方法public static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }来绕过服务器证书验证
  • 我使用了委托{ return true; } 对于 ServerCertificateValidationCallback 成员。此时,我认为由于证书的主机名与客户端请求的服务器不匹配,因此调用失败。我还没有花时间对此进行调查。
  • 我最终通过我的 SSH 库使用 SFTP,使用开发 SSL 证书没有问题。我还让 MySQL 和 .NET 使用开发 SSL 证书进行通信。我会重申,FileZilla 在我连接时会愉快地提示我接受证书。实际上只是这个 .NET FTP 库与无法通过 RCA 验证的 SSL 证书无关。
  • 很好的研究。你现在让我很好奇,所以我将尝试使用开发证书设置 IIS FTPS 服务器,看看是否可以使其与 .NET FTP 客户端一起使用。

标签: c# ssl ftpwebrequest ftps vsftpd


【解决方案1】:

在您的 vsftpd.conf 中插入以下行:

ssl_ciphers=AES128-SHA

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    相关资源
    最近更新 更多