2017-02-09 476 views
3

我在本地計算機上使用IIS來測試SSL連接的FTP。我正在使用FluentFTP庫連接到FTP。我正在使用以下代碼連接到服務器。使用FluentFTP連接到FTPS(FTP over SSL)

FtpClient conn = new FtpClient(); 
conn.Host = firewallSslDetails.Address; 
conn.Credentials = new NetworkCredential(firewallSslDetails.UserName, firewallSslDetails.Password); 
conn.SslProtocols = System.Security.Authentication.SslProtocols.Default; 

X509Certificate2 cert = new X509Certificate2(@"C:\Users\BizTalk360\Desktop\FtpSites\ServerCert.cer"); 
conn.EncryptionMode = FtpEncryptionMode.Implicit; 
conn.DataConnectionType = FtpDataConnectionType.AutoActive; 
conn.DataConnectionEncryption = true; 
conn.EnableThreadSafeDataConnections = false; 
conn.ClientCertificates.Add(cert); 
conn.ValidateCertificate += new FtpSslValidation(OnValidateCertificate); 

conn.Connect(); 

服務器返回給我以下錯誤。

FluentFTP.FtpCommandException: Policy requires SSL.; Win32 error: Access is denied.; Error details: SSL policy requires SSL for control channel.;

對於通過FTP進行連接,上述代碼工作正常,對於使用SSL的FTP無法正常工作。

回答

5

你似乎被連接到默認端口21(沒有明確的端口指定的任何地方),你需要使用「清晰」模式:

conn.EncryptionMode = FtpEncryptionMode.Explicit; 
+0

其更改爲顯式服務器是引發此錯誤後.. _AUTH TLS命令失敗._ –

+0

啓用日誌記錄('FtpTrace.AddListener')並向我們顯示日誌+您是否可以使用獨立FTP客戶端(WinSCP或FileZilla)連接到您的服務器?向我們展示它的日誌。 –

+0

我試圖用FileZilla登錄,以下是日誌。 '狀態:\t不安全的服務器,它不支持通過TLS的FTP .''響應:\t 534-策略需要SSL.''響應:\t錯誤詳細信息:SSL策略需要SSL控制通道.''狀態:\t不安全的服務器,它不支持通過TLS的FTP。 響應:\t 534-策略需要SSL。 響應:\t Win32錯誤:訪問被拒絕。 迴應:\t錯誤詳細信息:SSL策略要求SSL用於控制通道。 響應:\t 534結束 錯誤:\t無法連接到服務器# –