簡體   English   中英

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(基於 TLS/SSL 的 FTP),您只需要:

ftpRequest.EnableSsl = true;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM