知识库

Windows 伺服器上用于 FTP 的 SSL

FTPS(FTP over SSL)在 Windows 服务器上自 IIS 7.0 开始引入,当时它是一个独立的附加组件,需要单独下载。IIS 7.5 及以后的每个版本都内置了 FTPS 功能,因此只需安装 IIS 管理员和/或包含在 IIS 包中的 FTP 服务,即可设置安全的 FTP 连接。

在继续以下说明之前,请确保已考虑以下前提条件:

  • IIS 管理员和 FTP 服务已在服务器实例上启用。IIS 和 FTP 的安装指导可以在 这里这里 找到。
  • 用于设置 FTPS 的 SSL 证书已 安装 到服务器存储中。

让我们描述添加支持 SSL 的 FTP 站点及其 SSL 设置的过程。

创建支持 SSL 的 FTP 站点

  1. 打开 IIS 管理员(运行 -> inetmgr -> 按回车键)。
  2. 将鼠标悬停在窗口左侧的 连接 面板上,点击 站点 节点,并在右侧的 操作 面板中按 添加 FTP 站点。

    image1_windows_ftp

  3. FTP 站点名称 字段中输入 FTP 站点的名称。在 物理路径 字段中指定根活页夹的路径。实际的 FTP 根活页夹的路径可能与示例中显示的路径不同。填写所有字段后,点击 下一步 继续。

    image2_windows_ftp

  4. 绑定和 SSL 设置页面 上,有几个字段需要修改:
    • IP 地址 - 增加 FTP 站点的特定 IP 地址或保留所有未分配选项。
    • 端口 - 此字段包含 FTP 站点将通过的端口号。默认端口号是 21。
    • 如果您打算托管多个 FTP 服务器,则应勾选 启用虚拟主机名 复选框,并填写相应字段。
    • 在 SSL 子部分中应选择 允许 SSL 单选按钮。此选项将允许以安全或非安全模式连接到 FTP 站点,给 FTP 连接处理提供更大的灵活性。稍后将进一步详细说明如何在允许 SSL 和要求 SSL 之间切换整个 FTP 站点或特定通道。在这一点上,值得提的是,允许 SSL 的模式比要求 SSL 更可取,原因可参见 这里
    • SSL 证书 子部分的下拉列表中选择预先导入的 SSL 证书。
    • image3_windows_ftp


      完成所有设置后,点击下一步继续。
  5. 身份验证和授权信息 屏幕上,对于 身份验证 选择 基本,并在 授权 子部分中设置 FTP 站点的用户。有几种选择来设置用户及其权限,因此实际设置可能与屏幕截图中的设置不同。

    image4_windows_ftp


完成后,点击 完成 以完成添加新的支持 SSL 的 FTP 站点。

为 FTP 站点配置其他 SSL 设置

一般而言,Windows 服务器和客户端之间的 FTP 通信分为控制通道(用于身份验证和发送 FTP 命令)和数据信道(用于数据传输)。

IIS 管理员和 FTP 服务提供灵活的设置,以便让 FTP 客户端决定 FTP 流量是否应该部分或完全加密。

控制通道策略 数据信道策略 描述
SslAllow SslAllow 此配置允许客户端决定 FTP 会话的任何部分是否应被加密。
SslRequireCredentialsOnly SslAllow 此配置保护 FTP 客户端的凭据不被窃听,并允许客户端决定数据传输是否应被加密。
SslRequireCredentialsOnly SslRequire 此配置要求客户端的凭据必须是安全的,然后允许客户端决定 FTP 命令是否应被加密。不过,所有数据传输必须被加密。
SslRequire SslRequire 此配置是最安全的——客户端必须在允许其他 FTP 命令之前,使用与 FTPS 相关的命令协商 SSL,并且所有数据传输必须被加密。


让我们看看如何使用 IIS 管理员修改上述设置:

  1. 在 IIS 主页上,选择新创建的 FTP 站点(如有需要,展开站点节点),然后双击站点主页部分中的 FTP SSL 设置 图标。

    image5_windows_ftp

  2. SSL 策略 部分,选择 自定义 单选按钮,然后点击 高级 以打开 高级 SSL 策略 设置。

    image6_windows_ftp

  3. 高级 SSL 策略 屏幕中,有机会自定义控制和数据信道的特定设置,如上表所述。

    image7_windows_ftp

  4. 设置完成后,单击 确定,然后在 IIS 管理员右侧的 操作 面板中点击 应用 以保存配置更改。

    image8_windows_ftp