SSL接続でFTPをテストするために、ローカルマシンでIISを使用しています。FTPへの接続にFluentFTPライブラリを使用しています。次のコードを使用してサーバーに接続しています。
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:ポリシーにはSSLが必要です。; Win32エラー:アクセスが拒否されました。; エラーの詳細:SSLポリシーでは、制御チャネルにSSLが必要です。;
FTP経由で接続する場合、上記のコードは正常に機能し、SSLを使用するFTPの場合は機能しません。
デフォルトのポート21(明示的なポートはどこにも指定されていない)に接続しているように見えるため、「明示的な」モードを使用する必要があります。
conn.EncryptionMode = FtpEncryptionMode.Explicit;
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加