使用IIS搭建了FTPS站点,使用winscp可以正常连接,使用filezilla连接时会报错,经排查此问题与Filezilla不同版本对证书要求不同导致,具体过程如下
搭建FTPS步骤请见此链接
开始时,我们本地的PC上安装的是Filezilla 3.33.0版本,在连接ftps站点时出现了如下报错
我们在同一台VM上安装了低版本的filezilla(3.22.2),连接测试成功
我们到FileZilla的官方论坛进行了查询,找到了对此问题的描述
https://forum.filezilla-project.org/viewtopic.php?f=2&t=42790&start=15
Filezilla从3.23版本开始,加入了对证书的校验,要求证书中必须启用标志位“DigitalSignature”,而默认用IIS生成的证书是不启用此功能的,因此在此3.23以上版本的FileZilla无法连接IIS上的FTPS。
解决方法有两种:
- 使用3.22以下版本的FileZilla客户端
- 在windows中手动创建证书,启用DigitalSignature标志位,并将证书绑定到FTPS站点,步骤如下:
- 使用powershell生成证书
New-SelfSignedCertificate -DnsName "Ftpsite" -CertStoreLocation "cert:\LocalMachine\My" -FriendlyName "ftpstest" -KeyDescription "ftpstest" -KeyAlgorithm "RSA" -KeyLength "2048" -KeyUsage DataEncipherment, KeyEncipherment, DigitalSignature
- 将该证书绑定到FTPS站点
- 重启FTPS服务
- 再使用3.23以上版本的Filezilla去连接,可以正常连上