FtpWebRequest TLS 连接是否需要客户端证书?
Does FtpWebRequest TLS connection need a client certificate?
我正在尝试使用 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;
如果我设置证书并尝试连接,服务器没有响应并且没有给我任何异常。
我真的需要证书吗?我不知道证书是否对连接有影响。证书的用途是什么?
谢谢
客户端证书是一种身份验证方式(作为密码的替代或补充)。只有当您的 FTPS 服务器需要使用客户端证书进行身份验证时,您才需要它。类似于SSH中的私钥认证。
根据我的经验,很少使用客户端证书。如果你需要它,你就会知道。而且您通常不会有密码(虽然有可能,但更罕见的是,您需要密码和客户端证书来进行身份验证)。
通常,要使用 FTPS(FTP over TLS/SSL),您只需要:
ftpRequest.EnableSsl = true;
我正在尝试使用 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;
如果我设置证书并尝试连接,服务器没有响应并且没有给我任何异常。
我真的需要证书吗?我不知道证书是否对连接有影响。证书的用途是什么?
谢谢
客户端证书是一种身份验证方式(作为密码的替代或补充)。只有当您的 FTPS 服务器需要使用客户端证书进行身份验证时,您才需要它。类似于SSH中的私钥认证。
根据我的经验,很少使用客户端证书。如果你需要它,你就会知道。而且您通常不会有密码(虽然有可能,但更罕见的是,您需要密码和客户端证书来进行身份验证)。
通常,要使用 FTPS(FTP over TLS/SSL),您只需要:
ftpRequest.EnableSsl = true;