【问题标题】:Does FtpWebRequest TLS connection need a client certificate?FtpWebRequest TLS 连接是否需要客户端证书?
【发布时间】:2018-11-15 13:38:17
【问题描述】:

我正在尝试使用FtpWebRequest 创建一个FTPRequest 以将报告文件发送到我的服务器。但我不了解 SSL/TLS 连接。

我使用的服务器接受 TLS 连接。那么,仅仅设置EnableSsl = true 就够了吗?还是我需要客户证书?

如果我只是将EnableSsl 设置为true,则接受连接并发送文件。

ftpRequest = (FtpWebRequest)WebRequest.Create(url);
ftpRequest.UseBinary = true;
ftpRequest.UsePassive = true;
ftpRequest.KeepAlive = false;
ftpRequest.Proxy = null;
ftpRequest.Credentials = new NetworkCredential(username, password);

如果我想要 TLS/SSL:

ftpRequest.EnableSsl = true;
X509Certificate cert = X509Certificate.CreateFromCertFile(filePath);

X509CertificateCollection certCollection = new X509CertificateCollection { cert };

ftpRequest.ClientCertificates = certCollection;

如果我设置了证书并尝试连接,服务器不会响应并且不会给我任何异常。
我真的需要证书吗?我不知道证书是否在连接上有所不同。证书的用途是什么?

谢谢

【问题讨论】:

    标签: c# ftp client-certificates ftpwebrequest ftps


    【解决方案1】:

    客户端证书是一种身份验证方式(作为密码的替代或补充)。仅当您的 FTPS 服务器需要使用客户端证书进行身份验证时才需要它。这类似于在 SSH 中使用私钥进行身份验证。

    根据我的经验,很少使用客户端证书。如果你需要它,你会知道的。而且您通常不会有密码(尽管您可能需要密码和客户端证书来进行身份验证,但这种情况更罕见)。

    通常,要使用 FTPS(基于 TLS/SSL 的 FTP),您只需要:

    ftpRequest.EnableSsl = true;
    

    【讨论】:

    • 感谢您的帮助。谢谢!!
    猜你喜欢
    • 2020-08-16
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    相关资源
    最近更新 更多