共用方式為


在 Azure 雲端服務 中啟用 HTTPS 通訊(外延支援)

使用超文本傳輸通訊協定安全 (HTTPS) 通訊協定來完成與 Microsoft Azure 雲端服務 通訊(擴充支援)。 本文討論如何啟用 雲端服務 的 HTTPS 通訊(外延支援)。

必要條件

專案部署的一般步驟

將 雲端服務(外延支援)專案部署到 Azure 的一般步驟如下:

  1. 準備您的憑證。

  2. 設定您的專案。

  3. 將專案檔封裝到雲端服務的服務定義 (.csdef)、服務組態 (.cscfg) 和服務套件 (.cspkg) 檔案中。

  4. 視需要變更 雲端服務 (外延支援) 資源的組態。 例如,您可以進行下列任何修改:

    1. 更新套件 URL。
    2. 設定 URL 設定。
    3. 更新作業系統秘密設定。
  5. 將新專案部署並更新至 Azure。

注意

專案可以透過數種不同的方法進行部署,例如使用下列工具:

不論部署方法為何,一般部署步驟都相同。

所有部署方法都需要上述前兩個步驟。 這些步驟會在程式 代碼變更 一節中討論。 其餘步驟也很重要,但它們不一定需要手動使用者介入。 例如,步驟可能會由 Visual Studio 之類的工具自動完成。 這些步驟的最後三個步驟會在組 態變更 一節中討論。

程式碼變更

若要進行程式代碼變更以準備憑證並設定專案,請執行下列步驟:

  1. 請遵循指示, 透過步驟 6 將憑證上傳至金鑰保存庫

  2. 記下憑證的指紋(40 位數的十六進位字串)。

  3. 專案的服務組態 (.cscfg) 檔案 中,將憑證指紋新增至您要在其中使用憑證的角色。 例如,如果您想要使用憑證作為 SSL 憑證來與 WebRole 通訊,您可以新增類似下列代碼段 WebRole1 的 XML 程式代碼作為根 ServiceConfiguration 元素的第一個子系:

    <Role name="WebRole1">
      <Instances count="1" />
      <Certificates>
        <Certificate
          name="Certificate1"
          thumbprint="0123456789ABCDEF0123456789ABCDEF01234567"
          thumbprintAlgorithm="sha1"
        />
      </Certificates>
    </Role>
    

    您可以自定義憑證的名稱,但必須符合服務定義 (.csdef) 檔案中使用的憑證名稱。

  4. 服務定義 (.csdef) 檔案中,新增下列元素。

    父 XPath 要加入的專案 要使用的屬性
    /ServiceDefinition/WebRole/Sites/Site/Bindings Binding nameendpointName
    /ServiceDefinition/WebRole/Endpoints InputEndpoint nameprotocolportcertificate
    /ServiceDefinition/WebRole Certificates/Certificate namestoreLocationstoreNamepermissionLevel

    元素 Certificates 必須直接加入結尾 Endpoints 標記之後。 它不包含任何屬性。 它只包含子 Certificate 專案。

    例如,您的服務定義檔案可能類似下列 XML 程式代碼:

    <?xml version="1.0" encoding="utf-8"?>
    <ServiceDefinition name="CSESOneWebRoleHTTPS" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
      <WebRole name="WebRole1" vmsize="Standard_D1_v2">
        <Sites>
          <Site name="Web">
            <Bindings>
              <Binding name="Endpoint1" endpointName="Endpoint1" />
              <Binding name="HttpsIn" endpointName="HttpsIn" />
            </Bindings>
          </Site>
        </Sites>
        <Endpoints>
          <InputEndpoint name="Endpoint1" protocol="http" port="80" />
          <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="Certificate1" />
        </Endpoints>
        <Certificates>
          <Certificate name="Certificate1" storeLocation="LocalMachine" storeName="My" permissionLevel="limitedOrElevated" />
        </Certificates>
      </WebRole>
    </ServiceDefinition>
    

    在此範例中,服務定義檔案會修改為在埠 443 上系結 HTTPS 通訊協定的 輸入端點 HttpsIn 。 它會針對名稱為 的存放區使用 Certificate1 憑證, My 且其位置 LocalMachine 只針對有限或提高的許可權等級。 和 Certificate 元素中的InputEndpoint憑證名稱彼此相符。 它們也會比對上一個步驟中服務組態 (.cscfg) 檔案中使用的憑證名稱。

設定變更

變更雲端服務設定的指示會根據您的雲端服務部署方式而有所不同。 這些指示會顯示在下列索引標籤上。 每個索引標籤都代表不同的部署方法。

繼續進行之前,請參閱使用 Azure 入口網站 部署 Azure 雲端服務(外延支援)。 然後,請遵循下列步驟,透過 Azure 入口網站 進行正確的組態變更:

  1. 移至標題 為使用ARM範本手動從傳統雲端服務移轉至雲端服務擴充支援的部落格文章,並遵循步驟 7 到 9。 這些指示說明如何執行下列步驟:

    • 封裝專案。

    • 將產生的服務套件 (<project-name.cspkg>) 和雲端服務組態 (ServiceConfiguration.Cloud.cscfg) 檔案上傳至雲端服務的記憶體帳戶容器。

      注意

      您也必須使用其他兩個檔案所述的相同程式來上傳服務定義 (ServiceDefinition.csdef) 檔案。

    • 為每個上傳的檔案產生共用存取簽章 (SAS) URL。

  2. Azure 入口網站 中,返回雲端服務的 [概觀] 頁面,然後選取 [更新]。

  3. 在 [ 更新雲端服務] 頁面上,於 [基本] 索引 卷標上進行下列變更:

    1. 在 [ 套件/組態/服務定義位置] 字段中,選取 [從 Blob]。

    2. 在 [ 上傳套件 #.cspkg, .zip] 字段中,遵循下列步驟:

      1. 選取 [ 瀏覽] 連結。
      2. 選取您上傳檔案的記憶體帳戶和容器。
      3. 在容器頁面中,選取對應的檔案(在此案例中為 <project-name.cspkg>),然後選取 [選取] 按鈕。
    3. 針對 [ 上傳組態 #.cscfg] 字段 (和 ServiceConfiguration.Cloud.cscfg 檔案),重複上一個步驟中所述的子程式。

    4. 針對 [ 上傳服務定義 (.csdef) ] 字段 (和 ServiceDefinition.csdef 檔案),請再次重複子程式。

  4. 選取 [設定] 索引標籤。

  5. 在 [ 金鑰保存庫 ] 欄位中,選取您上傳憑證的密鑰保存庫(稍早在 [程式代碼變更 ] 區段中)。 在選取的金鑰保存庫中找到憑證之後,列出的憑證會顯示 [找到狀態]。

  6. 若要部署新設定的專案,請選取 [ 更新] 按鈕。

進行設定變更之後,客戶將能夠使用 HTTPS 通訊協定與您的雲端服務網站通訊。 如果您的憑證已自我簽署,瀏覽器可能會報告憑證不安全,但瀏覽器不會封鎖連線的警告。

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。