設定雲端的虛擬主機

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

Cloud 客戶使用付費帳戶,即可在機構中建立虛擬主機。

瞭解詳情

誰可以建立及修改虛擬專案 Cloud 中的主機

只有 Edge Cloud 中的付費帳戶能建立及修改虛擬主機。 建立虛擬主機的使用者必須是機構管理員角色,或 具備修改虛擬主機權限的自訂角色。其他角色的使用者沒有 具備建立虛擬主機的授權。

舉例來說,付費客戶可以:

  • 啟用單向與雙向 TLS
  • 指定虛擬主機使用的 KeyStore/truststore

免費試用和試用帳戶無法建立或修改虛擬主機,且僅適用於虛擬主機 系統會在邊緣註冊時為他們建立專屬帳戶如要進一步瞭解 Edge 定價方案,請參閱 https://apigee.com/api-management/#/pricing.

為 Cloud 設定虛擬主機的需求條件

下表摘要說明建立虛擬主機的需求條件:

類別 規定 說明
帳戶類型 付費 免費試用和試用帳戶無法建立或修改虛擬主機。
使用者角色 機構管理員 只有機構管理員可以建立虛擬主機,或具備具備 具備修改虛擬主機的權限。
虛擬主機數量 最多 20 個

每個專案最多只能有 20 個虛擬主機 機構/環境

注意:私人的虛擬主機數量沒有上限 Cloud 上精進自己的技能。

大部分的機構/環境使用兩個虛擬主機,分別用於 HTTP 和 HTTPS 資源存取權如果貴機構/環境允許,可能需要其他虛擬主機 使用不同的網域名稱存取存取權

基準網址 包含通訊協定 透過 UI 或 API 定義虛擬主機的基準網址時, 必須在網址中指定通訊協定 (例如「http://」或「https://」)。
通訊埠 443

您只能透過通訊埠 443 建立虛擬主機。

請注意,只要這些主機具有 不重複的主機別名,以及所有支援 TLS。

TLS 必填

您只能建立透過 HTTPS 支援 TLS 的虛擬主機。您必須已經 會建立一個 KeyStore (也可選擇建立信任存放區),當中包含您的傳輸層安全標準 (TLS) 憑證和金鑰。

您必須擁有由可信實體 (例如 Symantec 或 VeriSign) 簽署的憑證。 您無法使用自行簽署的憑證。

如需 HTTP 存取權,請與 Apigee Edge 支援團隊聯絡。

傳輸層安全標準 (TLS) 通訊協定 TLS 1.2

Cloud 中的 Edge 僅支援 TLS 1.2 版。

主機別名 僅限機構與環境中的獨特機構 其他機構/環境組合沒有主機別名。
網域名稱 客戶擁有

您必須擁有虛擬主機中指定的網域名稱。邊緣檢查 主機名稱 (由主機別名定義) 與 TLS 中繼資料相符 憑證

具體而言,Edge 會檢查憑證中的下列資訊:

  • CN - 一般名稱
  • SAN - 主體別名

SAN 或 CN 可使用萬用字元,例如 *.myco.net

Edge 也會驗證憑證是否尚未過期。

用戶端應用程式 SNI 支援 所有存取虛擬主機的用戶端應用程式都必須支援 SNI。

所有應用程式都必須支援 SNI。

使用瀏覽器建立虛擬主機

本節的大多數範例都使用 Edge API 建立或修改虛擬主機,但 也可以在 Edge UI 中建立虛擬主機

如何透過 Edge UI 建立虛擬主機:

  1. 登入 apigee.com/edge
  2. 依序選取「管理員」>虛擬主機
  3. 選取環境,例如「prod」或「test」
  4. 選取「+ 虛擬主機」來建立虛擬主機,或是選取 編輯現有虛擬主機。
  5. 如要進一步瞭解如何填入虛擬主機欄位,請參閱上表。

定義單向 TLS 的虛擬主機

定義虛擬主機的 XML 物件,舉例來說,下列 XML 物件會定義 單向 TLS 的虛擬主機:

<VirtualHost name="myTLSVHost"> 
    <HostAliases> 
        <HostAlias>api.myCompany.com</HostAlias> 
    </HostAliases> 
    <Port>443</Port> 
    <SSLInfo> 
        <Enabled>true</Enabled> 
        <ClientAuthEnabled>false</ClientAuthEnabled> 
        <KeyStore>ref://myTestKeystoreRef</KeyStore> 
        <KeyAlias>myKeyAlias</KeyAlias> 
    </SSLInfo>
</VirtualHost>

在這個定義中,您:

  • 將「名稱」指定為 myTLSVHost。使用名稱做為參照 API Proxy 或 API 呼叫中的虛擬主機。
  • 將「主機別名」設為 api.myCompany.com。這是 用來存取您 API 的公開網域 (由 DNS 定義和 CNAME 定義) 。
  • port 號碼指定為 443。如果省略此值,系統會依預設 通訊埠設為 443
  • 視需要啟用 TLS。

    <Enable> 元素 設為 true 以啟用單向 TLS,而 <KeyStore> 元素會指定 傳輸層安全標準 (TLS) 連線使用的 KeyStore 和金鑰別名。

    如要啟用雙向 TLS,請將 <ClientAuthEnabled> 設為 true,並 請使用 <TrustStore> 元素指定信任儲存庫。信任儲存庫 保存用戶端憑證核發者和憑證的 CA 鏈結 (這是必要的)。

    注意:由於 Edge 原先支援 SSL,因此您用來設定的標記 TLS 名稱為 <SSLInfo>

請注意,您可以在虛擬主機中設定其他屬性。換 所有屬性的參考資料,請參閱虛擬主機屬性參考資料

決定如何在虛擬主機中指定 KeyStore 和信任儲存庫名稱

將虛擬主機設為支援 TLS 時,您必須使用 reference:參照是包含 KeyStore 名稱或 而不要直接指定 KeyStore 或信任儲存庫名稱,如下所示:

    <SSLInfo> 
        <Enabled>true</Enabled> 
        <ClientAuthEnabled>false</ClientAuthEnabled> 
        <KeyStore>ref://myTestKeystoreRef</KeyStore> 
        <KeyAlias>myKeyAlias</KeyAlias> 
    </SSLInfo>

使用參照的好處是,您可以變更參考檔案的值來變更 因為目前 KeyStore 中的憑證 有幾項要求如要變更參照的值,則不必重新啟動。 以及邊緣路由器如需相關資訊,請參閱使用參考資料一文 ,進一步瞭解如何建立及修改參照。

您只能使用 KeyStore 和信任儲存庫的參照。您無法在 別名。變更 KeyStore 的參照時,請確認憑證的別名名稱是 與舊的 KeyStore 一樣

使用 KeyStore 和信任儲存庫的參照限制

使用 KeyStore 和 信任儲存庫:

  • 只有在支援 SNI 和 您將在 Apigee 路由器上終止 SSL
  • 如果在 Apigee 路由器的前方設有負載平衡器,且您在 就無法在虛擬主機中使用 KeyStore 和信任儲存庫參照。

定義雙向傳輸層安全標準 (TLS) 的虛擬主機

如要啟用雙向 TLS,請將 <ClientAuthEnabled> 元素設為 true,然後將 藉由搭配 <TrustStore> 元素的參照使用。信任儲存庫 保存用戶端憑證核發者和憑證的 CA 鏈結 (這是必要的)。此外,用戶端也必須 已正確設定雙向 TLS

如要建立雙向傳輸層安全標準 (TLS) 的虛擬主機,請建立 XML 物件來定義 主機:

<VirtualHost name="myTLSVHost"> 
    <HostAliases> 
        <HostAlias>api.myCompany.com</HostAlias> 
    </HostAliases> 
    <Port>443</Port> 
    <SSLInfo> 
        <Enabled>true</Enabled> 
        <ClientAuthEnabled>true</ClientAuthEnabled> 
        <KeyStore>ref://myTestKeystoreRef</KeyStore> 
        <KeyAlias>myKeyAlias</KeyAlias> 
        <TrustStore>ref://myTestTruststoreRef</TrustStore> 
    </SSLInfo>
</VirtualHost>

在這個定義中,您:

  • <ClientAuthEnabled> 設為 true,即可啟用雙向 TLS。
  • 使用 <TrustStore> 元素指定信任儲存庫的參照。信任儲存庫 保存用戶端憑證核發者和憑證的 CA 鏈結 (這是必要的)。

定義使用 Apigee 免費試用憑證和金鑰的虛擬主機

如果您使用 Cloud 付費 Edge 帳戶,但尚未取得 TLS 憑證和金鑰,請 使用 Apigee 免費試用憑證和金鑰的虛擬主機。這表示您可以建立 不必先建立 KeyStore

Apigee 免費試用憑證的定義為 *.apigee.net 網域。因此, 虛擬主機的 <HostAlias> 格式也必須為 *.apigee.net

如果您執行雙向傳輸層安全標準 (TLS),您仍須將 <ClientAuthEnabled> 元素設為 true,並使用帶有 <TrustStore> 元素的參照來指定信任儲存庫 ,如同上方「定義雙向傳輸層安全標準 (TLS) 的虛擬主機」一節所述。

一種 XML 物件,會使用 Apigee 免費試用憑證定義虛擬主機,且在這類物件中會省略 <KeyStore><KeyAlias> 元素,並替換成 <UseBuiltInFreeTrialCert> 元素,如下所示:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>myapi.apigee.net</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
    </SSLInfo>
    <UseBuiltInFreeTrialCert>true</UseBuiltInFreeTrialCert>
</VirtualHost>

<UseBuiltInFreeTrialCert> 元素的預設值為 false。

針對雙向 TLS,請將虛擬主機定義為:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>myapi.apigee.net</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>true</ClientAuthEnabled>
        <TrustStore>ref://myTestTruststoreRef</TrustStore>
    </SSLInfo>
    <UseBuiltInFreeTrialCert>true</UseBuiltInFreeTrialCert>
</VirtualHost>

在 Edge UI 中,選取「使用內建免費試用憑證」選項 以使用免費的 Apigee 憑證和金鑰來建立虛擬主機時:

選取「使用內建的免費試用憑證」

建立虛擬主機

請按照下列程序建立虛擬主機:

  1. 為公開網域 (api.myCompany.com) 建立 DNS 項目和 CNAME 記錄, 指向 [org]-[environment].apigee.net
  2. 建立及設定 KeyStore (本例中名為 myTestKeystore), 使用 Edge UI 建立 KeyStore 和信任存放區。在本例中 確保 KeyStore 使用 myKeyAlias 的別名名稱做為憑證, 私密金鑰
  3. 將憑證和金鑰上傳至 KeyStore。請確定 憑證符合您要用於虛擬主機的主機別名。
  4. 使用 Edge UI 或 API 建立 KeyStore 參照。參考資料 將 KeyStore 名稱和參照類型指定為 KeyStore。 如需相關資訊,請參閱使用參考資料一文 ,進一步瞭解如何建立及修改參照。

  5. 使用建立 Virtual Host API。請務必指定正確的 KeyStore 參照和金鑰別名。 如要使用 API,請使用下列 POST API 呼叫建立 KeyStore 名稱為 myTLSVHost
    curl -X POST -H "Content-Type:application/xml" \
      https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/virtualhosts \
      -d '<VirtualHost name="myTLSVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Port>443</Port>
        <SSLInfo>
          <Enabled>true</Enabled>
          <ClientAuthEnabled>false</ClientAuthEnabled>
          <KeyStore>ref://myTestKeystoreRef</KeyStore>
          <KeyAlias>myKeyAlias</KeyAlias>
        </SSLInfo>
      </VirtualHost>' \
      -u orgAdminEmail:password

    如果您透過用戶端執行雙向 TLS,請將 <ClientAuthEnabled> 設為 true 並使用 <TrustStore> 元素指定信任儲存庫用戶端 您必須為雙向傳輸層安全標準 (TLS) 正確設定,這代表 Edge 的信任儲存庫包含 用戶端的憑證核發者和憑證鏈結使用描述的程序建立信任儲存庫 此處: 使用 Edge UI 建立 KeyStore 和信任儲存庫

  6. 如果有現有的 API Proxy,請將虛擬主機加進<HTTPConnection> ProxyEndpoint。系統會自動將虛擬主機新增至所有新的 API Proxy。 詳情請參閱 設定 API Proxy 以使用虛擬主機

更新 API Proxy 以使用虛擬主機後,建立 DNS 項目和 CNAME 記錄中,您就可以使用 API Proxy,如下所示:

https://api.myCompany.com/v1/{project-base-path}/{resource-path}

例如:

https://api.myCompany.com/v1/weather/forecastrss?w=12797282

修改虛擬主機

付費使用 Cloud 的客戶要修改現有的虛擬主機時,必須執行兩項主要工作:

  1. 修改 KeyStore 或信任儲存庫的參照值。

    注意:在您設定 <KeyStore><TrustStore> 使用參照,您可以變更參考檔案的值 。但如果您希望變更 <KeyStore> 或 請 <TrustStore> 以使用其他參考資料,或者將 如要使用其他別名,<KeyAlias>,請洽詢 Apigee Edge 支援團隊
  2. 修改虛擬主機的 TLS 屬性。

修改 參照

您可以修改參照的值,變更虛擬的 KeyStore 或信任儲存庫 主機。

修改參照值之前:

  1. 建立新的 KeyStore,並上傳憑證和金鑰,如所述 使用 Edge UI 建立 KeyStore 和信任儲存庫。在新的 KeyStore 中 請確定您使用的金鑰別名名稱,與現有金鑰中使用的名稱相同 商店
  2. 如有需要,請建立新的信任存放區,並依照 的說明上傳憑證 使用 Edge UI 建立 KeyStore 和信任儲存庫
  3. 按照「使用參照」一節的說明修改參考資料。

修改 虛擬主機

付費客戶可以使用 更新 Virtual Host API 以更新虛擬主機。這個 API 可讓您設定 安裝額外資源 虛擬主機屬性參考資料

修改虛擬主機時,Edge 執行的驗證作業類似於您在建立虛擬機器時 虛擬主機也就是說,修改完畢後,Edge 會驗證:

  • 主機別名指定的網域未用於其他機構; 環境。
  • 您擁有這個網域名稱。具體而言,Edge 會檢查 憑證與主機別名相符:
    • CN - 一般名稱
    • SAN - 主體別名
    • Edge 會驗證憑證尚未過期。

如要使用 Edge API 修改虛擬主機,請執行以下操作:

  1. 使用 更新虛擬主機 更新 Virtual Host API。使用 API 時,您必須指定 要求主體中的虛擬主機,而不只是您要變更的元素。在本 例如,您可設定 proxy_read_timeout 屬性的值:

    curl -X PUT -H "Content-Type:application/xml" \
      https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/virtualhosts/{vhost_name} \
      -d '<VirtualHost name="myTLSVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Port>443</Port>
        <SSLInfo>
          <Enabled>true</Enabled>
          <ClientAuthEnabled>false</ClientAuthEnabled>
          <KeyStore>ref://myTestKeystoreRef</KeyStore>
          <KeyAlias>myKeyAlias</KeyAlias>
        </SSLInfo>
        <Properties>
           <Property name="proxy_read_timeout">50</Property>
             </Properties>
      </VirtualHost>' \
      -u orgAdminEmail:password

修改 使用 KeyStore 和信任儲存庫參照的虛擬主機

Cloud 中所有新的 Edge 虛擬主機都會使用 KeyStore 和信任儲存庫的參照。 參照可讓您變更 KeyStore 和信任存放區,無須聯絡 Apigee Edge 支援

Apigee Edge 中的舊版虛擬主機可能未設為使用 KeyStore 和 信任存放區在這種情況下,您可以更新虛擬主機使用參照。

將虛擬主機更新為使用 參照

請按照下列步驟更新虛擬主機:

  1. 如有需要,請建立新的 KeyStore,並依照 的說明上傳憑證 使用 Edge UI 建立 KeyStore 和信任儲存庫。如果已有 KeyStore 之後,您可以設定指向該 KeyStore 的參照。
  2. 建立 KeyStore 的新參照。
  3. 如有需要,請建立新的信任存放區並上傳憑證。如果已有信任存放區 那麼您可以設定指向該物件的參照
  4. 建立信任儲存庫的新參照。
  5. 更新虛擬主機以設定 KeyStore、別名、信任儲存庫和其他任何傳輸層安全標準 (TLS) 資源。呼叫的酬載為:
    curl -X PUT -H "Content-Type:application/xml" \
      https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/virtualhosts/{vhost_name} \
      -d '<VirtualHost  name="myTLSVHost">
            <HostAliases>
              <HostAlias>api.myCompany.com</HostAlias>
            </HostAliases>
            <Port>443</Port>
            <OCSPStapling>off</OCSPStapling>
            <SSLInfo>
              <Enabled>true</Enabled>
              <ClientAuthEnabled>true</ClientAuthEnabled>
              <KeyStore>ref://myKeyStore2Way</KeyStore>
              <KeyAlias>keyAlias</KeyAlias>
              <TrustStore>ref://myTrustStore2Way</TrustStore>
              <IgnoreValidationErrors>false</IgnoreValidationErrors>
            </SSLInfo>
          </VirtualHost>' \
        -u orgAdminEmail:pWord
  6. Apigee 聯絡 支援:重新啟動 Edge Router 以完成程序。