在 IIS 7 中使用 FTP Over SSL

作者:Robert McMurray

相容性

版本 備註
IIS 7.5 FTP 7.5 服務隨附于 Windows 7 和 Windows Server 2008 R2 中的 IIS 7.5 功能。
IIS 7.0 IIS 7.0 隨附 FTP 7.0 和 FTP 7.5 服務,需要從下列 URL 下載並安裝服務: https://www.iis.net/download/FTP

簡介

Microsoft 已建立已完全重寫 Windows Server® 2008 的新 FTP 服務。 此 FTP 服務包含許多新功能,可讓 Web 作者比之前更妥善地發佈內容,並提供 Web 系統管理員更多的安全性和部署選項。

其中一項功能是 FTP over Secure Sockets Layer (SSL) ,可讓會話在 FTP 用戶端與伺服器之間加密。 本檔會逐步引導您完成:設定 FTP 網站;和,將該月臺設定為搭配新的 FTP 使用者介面使用 SSL,可讓您直接編輯 IIS 7.0 組態檔。 它包含:

注意

本逐步解說包含一系列步驟,可讓您使用本機系統管理員帳戶登入 FTP 網站。 只有在伺服器本身使用回送位址或透過 SSL 從遠端伺服器執行這些步驟時,才應該遵循這些步驟。 如果您想要使用個別的使用者帳戶,而不是系統管理員帳戶,您必須建立適當的資料夾,並在必要時設定該使用者帳戶的正確許可權。

必要條件

必須安裝下列專案,才能完成本文中的程式:

  1. IIS 7.0 必須安裝在您的 Windows 2008 伺服器上,而且必須安裝 Internet Information Services Manager。

  2. 新的 FTP 服務。 您可以使用下列其中一個連結,從 https://www.iis.net/ 網站下載並安裝 FTP 服務:

    • 適用于 IIS 7.0 的 FTP 7.5 (x64)
    • 適用于 IIS 7.0 的 FTP 7.5 (x86)
  3. 您必須建立 FTP 發行的根資料夾:

    • 在 建立資料夾 %SystemDrive%\inetpub\ftproot

    • 設定許可權以允許系統管理員群組的存取權:

      • 開啟命令提示字元。
      • 輸入下列命令: ICACLS "%SystemDrive%\inetpub\ftproot" /Grant administrators:F /T
      • 關閉命令提示字元。

注意

本逐步解說中列出的設定會指定 %SystemDrive%\inetpub\ftproot 為 FTP 網站的路徑。 您不需要使用此路徑;不過,如果您變更網站的位置,您必須變更本逐步解說中使用的網站相關路徑。

選擇性:建立自我簽署 SSL 憑證

在此選擇性工作中,您將建立自我簽署 SSL 憑證,以用於測試 FTP 網站。

注意

如果您要設定以網際網路為基礎的活動 FTP 網站,您會從許多憑證授權單位單位的其中一個取得 SSL 憑證,例如 VeriSign、Thawte、DigiCert 等。如需詳細資訊,請參閱 憑證授權單位單位

  1. 開啟 [Internet Information Services (IIS 7.0) 管理員]。
  2. 按一下 [ 連線 ] 樹狀結構頂端節點的電腦,然後按兩下 [伺服器憑證] 功能。
    顯示 [MY SERVER 首頁] 窗格的螢幕擷取畫面。已選取 [憑證]。
  3. 按一下 [動作] 窗格中的 [建立Self-Signed憑證]。
    顯示 [Sever 憑證] 窗格的螢幕擷取畫面。
  4. 輸入 「My FTP Certificate」 作為新憑證的名稱,然後按一下 [ 確定]。
    顯示 [建立自我簽署憑證] 對話方塊的螢幕擷取畫面。

使用 IIS 7.0 管理員建立已啟用 SSL 的 FTP 網站

步驟 1:使用 FTP 月臺精靈建立 SSL 型 FTP 網站

在第一個步驟中,您會建立只能使用系統管理員帳戶開啟的新 FTP 網站。

  1. 移至 IIS 7.0 管理員。 在 [ 連線] 窗格中,按一下樹狀結構中的 [站 台] 節點。

  2. 以滑鼠右鍵按一下樹狀結構中的[站台] 節點,然後按一下 [新增 FTP 站台],或按一下 [動作] 窗格中的 [新增 FTP 網站]。
    顯示 [連線] 窗格中 [月臺] 操作功能表的螢幕擷取畫面。

  3. 當 [ 新增 FTP 月臺 精靈] 出現時:

    • 在 [ FTP 網站名稱 ] 方塊中輸入 [我的新 FTP 網站],然後流覽至 %SystemDrive%\inetpub\ftproot 您在 [必要條件] 區段中建立的資料夾。

      注意

      如果您選擇輸入內容資料夾的路徑,您可以在路徑中使用環境變數。

    • 按一下 [下一步] 。

      此螢幕擷取畫面顯示 [新增 F T P 網站] 對話方塊中的 [網站資訊] 頁面。

  4. 在精靈的下一頁:

    • 從 [IP 位址] 下拉式清單中選擇 FTP 網站的 IP 位址 ,或選擇接受預設選取 [所有未指派]。由於您稍後會在本逐步解說中使用系統管理員帳戶,因此請務必在 [IP 位址] 方塊中輸入 「127.0.0.1」 來限制伺服器的存取,並輸入電腦的本機回送 IP 位址

    • 您通常會在 [埠] 方塊中輸入 FTP 網站的 TCP/IP 。 針對此逐步解說,請選擇接受預設埠 21。

    • 在此逐步解說中,您不會使用主機名稱,因此請確定 [ 虛擬主機 ] 方塊是空白的。

    • 請確定 [ 憑證 ] 下拉式清單已設定為 SSL 憑證。 例如,如果您遵循選擇性步驟來建立自我簽署憑證,下拉式方塊應該會顯示「我的 FTP 憑證」。

    • 請確定已選取 [ 允許 SSL ] 選項。

    • 按一下 [下一步] 。

      顯示 [新增 F T P 月臺] 對話方塊中 [系結和 S S L 設定] 頁面的螢幕擷取畫面。已選取 [允許 S L]。

  5. 在精靈的下一頁:

    • 針對 [驗證設定] 選取 [基本]。

    • 針對 [授權 ] 設定:

      • 從 [ 允許存取] 下拉式清單中選擇 [指定使用者]。
      • 輸入 「administrator」 做為使用者名稱。
      • 針對 [許可權] 選項選取[讀取] 和 [寫入]。
    • 當您完成這些專案時,請按一下 [ 完成]。

      顯示 [新增 F T P 網站] 對話方塊中 [驗證和授權資訊] 頁面的螢幕擷取畫面。已選取 [基本]、[讀取] 和 [寫入]。

摘要

您已成功使用新的 FTP 服務建立新的 SSL 型 FTP 網站。

若要回顧您在此步驟中完成的專案:

  • 您已建立名為 「My New FTP Site」 的新 FTP 網站,其內容根目錄位於 %SystemDrive%\inetpub\ftproot
  • 您將 FTP 月臺系結至埠 21 上電腦的本機回送位址。
  • 您選擇要求 FTP 網站的安全通訊端層 (SSL) ,並選取您的 SSL 憑證。
  • 您已啟用基本驗證,並為本機系統管理員帳戶建立讀取和寫入權限的授權規則。

步驟 2:設定其他 FTP SSL 設定

FTP 的 SSL 原則可依月臺自訂。 您可以為控制項和資料通道指定不同的設定。 在此步驟中,您會為 FTP 網站設定其他 SSL 設定,以確保所有使用者認證都已加密,即使所有其他 FTP 活動都未加密也一樣。

  1. 移至 IIS 7.0 管理員。 按一下您在步驟 1 中建立之 FTP 網站的節點。 所有 FTP 功能的圖示都會顯示。
    顯示 [我的新 F T P 網站首頁] 窗格的螢幕擷取畫面。

  2. 若要設定 SSL 選項,請按兩下 [FTP SSL 設定 ] 圖示以開啟 [SSL 設定] 功能頁面。
    顯示 [我的新 F T P 網站首頁] 窗格的螢幕擷取畫面,其中已選取 F T P S S L 設定。

  3. [FTP SSL 設定] 頁面顯示時,請選取 [ 自訂 ] 選項,然後按一下 [ 進階 ] 按鈕。
    顯示 [F T P S S L 設定] 窗格的螢幕擷取畫面。已選取 [自訂]。

  4. 顯示 [ 進階 SSL 原則 ] 對話方塊時:

    • 選取控制通道的 [僅需要認證] 選項。

      注意

      此設定需要透過 SSL 加密所有使用者名稱和密碼,但用戶端可以選擇是否要加密所有其他控制通道活動。

    • 選取資料通道的 [ 允許 ] 選項。

      注意

      此設定可讓用戶端選擇是否加密任何資料通道活動。

    • 當您完成這些專案時,請按一下 [ 確定]。
      顯示 [進階 S S L 原則] 對話方塊的螢幕擷取畫面。

  5. 在 [FTP SSL 設定]頁面上,按一下 [動作] 窗格中的 [套用] 以儲存 SSL 設定。
    顯示 [F T P S S L 設定] 窗格的螢幕擷取畫面。[套用] 和 [取消] 會列在 [動作] 窗格中。

摘要

若要回顧您在此步驟中完成的專案:

  • 您已將控制通道 SSL 原則設定為要求所有使用者認證都已加密,並允許 FTP 用戶端判斷是否要加密所有其他控制通道活動。
  • 您已設定資料通道 SSL 原則,以允許 FTP 用戶端判斷是否要加密任何資料通道活動。

登入您的 FTP 網站

在步驟 1 中,您已建立可由系統管理員帳戶存取的 FTP 網站。 在步驟 2 中,您已將控制通道 SSL 原則設定為要求所有使用者認證都會加密,同時允許 FTP 用戶端選擇是否要加密所有其他控制通道和資料通道活動。

使用支援 SSL 的 FTP 用戶端登入 FTP 伺服器時,FTP 伺服器支援下列明確的安全性選項:

  • TLS-C/TLS - 使用 TLS 進行 RFC2228 預設值的連線。 這表示沒有資料連線的隱含保護。
  • TLS-P/SSL - 使用 TLS 進行連線。 這表示資料連線會隱含地受到保護。

在大部分的第三部分 FTP 用戶端中指定 SSL 連線選項時,可以設定這些設定。

編輯 IIS 7.0 組態檔來新增 SSL 型 FTP 發佈

您也可以編輯 IIS 7.0 組態檔,將 SSL 型 FTP 發佈新增至現有的網站。

注意

編輯您的applicationHost.config檔案需要完整的系統管理許可權。 使用下列兩種方法之一:

  • 使用本機「系統管理員」帳戶登入您的電腦。

Or

  • 如果您使用具有非本機 「系統管理員」帳戶之系統管理許可權的帳戶登入,請使用 [以系統管理員身分執行] 選項開啟 [記事本]。

注意

上述其中一個步驟是必要的,因為 Windows Vista 和 Windows Server 2008 作業系統中的使用者帳戶控制 (UAC) 安全性元件會防止存取您的applicationHost.config檔案。 如需 UAC 的詳細資訊,請參閱 使用者帳戶控制

下列步驟會逐步引導您完成所有必要設定,以新增預設網站的 FTP 發佈。

步驟 1:擷取 SSL 憑證的雜湊:

  1. 在 [ 伺服器憑證] 功能中,按兩下您的 SSL 憑證。 例如,如果您遵循選擇性步驟來建立自我簽署憑證,您可以按兩下名為 「My FTP Certificate」 的憑證。
  2. 按一下 [詳細資料] 索引標籤。
  3. 捲動欄位,直到您找到 Thumbprint 值為止。
  4. 目提示 [指紋 ] 值,資料會顯示為:
    「57 68 6F 61 20 44 75 64 65 2C 20 49 49 53 20 52 6F 63 6B 73」
  5. 從文字方塊中複製十六進位資料,並將其貼到剪貼簿中。 然後,開啟 Windows 記事本,並將資料貼到空白檔中。

注意

您稍後會使用此資訊。

步驟 2:將 FTP 新增至預設網站

  1. 使用 Windows 記事本之類的文字編輯器,開啟預設位於資料夾中 %SystemRoot%\System32\inetsrv\config 的 applicationHost.config 檔案。

  2. 找出預設網站的 區段。 其應該類似下列範例:

    <site name="Default Web Site" id="1">
        <application path="/">
            <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:80:" />
        </bindings>
    </site>
    
  3. 在 bindings 集合中建立新的繫結項目。 將新繫結項目上的通訊協定屬性值設定為包含 「ftp」,然後將 bindingInformation 屬性的埠值變更為包含 「21」。 您的預設網站設定現在應該類似下列範例:

    <site name="Default Web Site" id="1">
        <application path="/">
            <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:80:" />
            <binding protocol="ftp" bindingInformation="*:21:" />
        </bindings>
    </site>
    
  4. <在結尾 < 系 > 結標籤底下新增 ftpServer > 區段,其中包含您的驗證和 SSL 設定。

    注意

    FTP 網站的驗證設定是在網站層級進行設定,不同于可針對每個 URL 設定的網站驗證。

    <ftpServer>
        <security>
            <authentication>
                <anonymousAuthentication enabled="false" userName="IUSR" />
                <basicAuthentication enabled="true" />
            </authentication>
            <ssl serverCertHash="" controlChannelPolicy="SslRequire" dataChannelPolicy="SslRequire" />
        </security>
    </ftpServer>
    
  5. 將 SSL 憑證中的指紋資料複製並貼到 SSL 元素的 serverCertHash 屬性中。 從指紋資料中移除所有空格。

    注意

    如果您未將十六進位資料轉換成大寫,則稍後不會顯示在 IIS 管理員中。

    您的預設網站設定現在應該包含類似下列範例的內容:

    <site name="Default Web Site" id="1">
        <application path="/">
            <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:80:" />
            <binding protocol="ftp" bindingInformation="*:21:" />
        </bindings>
        <ftpServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="false" />
                    <basicAuthentication enabled="true" />
                </authentication>
            </security>
            <ssl serverCertHash="57686F6120447564652C2049495320526F636B73" controlChannelPolicy="SslRequire" dataChannelPolicy="SslRequire" />
        </ftpServer>
    </site>
    
  6. 捲動至applicationHost.config檔案底部,並新增預設網站的位置區段,其中包含您的授權設定。

    注意

    如此範例所示,每個 URL 會設定 FTP 網站的授權設定。

    <location path="Default Web Site">
        <system.ftpServer>
            <security>
                <authorization>
                    <add accessType="Allow" users="administrator" permissions="Read, Write" />
                </authorization>
            </security>
        </system.ftpServer>
    </location>
    
  7. 儲存您的applicationHost.config檔案。

您現在應該能夠使用 SSL 型 FTP 用戶端登入預設網站。

摘要

在此工作中,您已編輯 IIS 7.0 組態檔,將 SSL 型 FTP 發佈新增至預設網站。 若要回顧您在這項工作中完成的專案:

  • 您已將 FTP 系結新增至預設網站。
  • 您已啟用 FTP 基本驗證,並停用預設網站的 FTP 匿名驗證。
  • 您已將月臺設定為要求所有控制通道和資料通道活動的 SSL。
  • 您已為預設網站設定讀取/寫入權限的系統管理員帳戶。