在虛擬主機和路由器上設定加密套件

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

本文說明如何在 Apigee Edge 的虛擬主機和路由器上設定加密套件。

加密套件是一組演算法,可協助保護使用 TLS 的網路連線。 用戶端和伺服器必須同意要使用的特定加密套件 收發訊息如果用戶端和伺服器不同意加密套件,則 要求失敗,並發生 TLS 握手錯誤。

在 Apigee 中,用戶端應用程式和用戶端應用程式應彼此同意加密套件 路由器

基於下列原因,建議您在 Apigee Edge 上修改加密套件:

  • 避免用戶端應用程式和 Apigee 路由器之間的任何加密套件不符
  • 如要使用更安全的加密套件,請修正任何安全漏洞或提升安全性

您可以在虛擬主機或 Apigee Router 上設定加密套件。注意事項 中,Apigee 只接受 OpenSSL 加密字串格式的加密套件,網址為 虛擬主機和路由器 OpenSSL 加密手冊 提供了相關規格中的 SSL 或 TLS 加密套件及相對應的 OpenSSL 加密套件。

例如:

如果您要將 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 加密機制 安裝在虛擬主機或 Apigee 路由器上 字串中相應的 OpenSSL 加密字串 OpenSSL 加密手冊。 加密套件 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 的 OpenSSL 加密字串 為 ECDHE-RSA-AES128-GCM-SHA256.,因此您必須使用 OpenSSL 加密字串 在虛擬主機中設定加密套件時為 ECDHE-RSA-AES128-GCM-SHA256 或 Apigee 路由器

事前準備

在虛擬主機上設定加密套件

本節說明如何在與機構和環境相關聯的虛擬主機中設定加密套件。您可以透過 ssl_ciphers 屬性在虛擬主機中設定加密套件,這個屬性代表虛擬主機支援的加密套件清單。

如需加密套件的清單,請參閱支援的加密套件 以及 Apigee 支援的套件

您可以透過下列任一方式設定虛擬主機:

  • 使用 Edge UI
  • 使用 Edge API
,瞭解如何調查及移除這項存取權。

使用 Edge UI

如要透過 Edge UI 設定虛擬主機,請按照下列步驟操作:

  1. 登入 Edge UI
  2. 前往「管理」>「管理員」虛擬主機
  3. 選取您要進行這項變更的特定環境
  4. 選取要設定加密套件的特定虛擬主機。
  5. 在「屬性」下方,使用以冒號分隔的 OpenSSL 加密字串清單更新「Ciphers」值。

    例如,如果您只想允許加密套件 「TLS_DHE_RSA_WITH_AES_128_GCM_SHA256」和 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,然後決定 中的 OpenSSL 加密手冊 如下表所示:

    加密套件 OpenSSL 加密字串
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE-RSA-AES128-GCM-SHA256
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256

    新增以冒號分隔的 OpenSSL 加密字串,如下圖所示:

    加密範例

  6. 點選「儲存」來儲存變更。

使用 Edge API

如要透過 Edge API 在虛擬主機上設定加密套件,請按照下列步驟操作:

  1. 使用以下程式碼取得目前的虛擬主機設定: 取得虛擬主機 API,如下所示:

    公有雲使用者:

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}
    

    Private Cloud 使用者:

    curl -v -X GET http://{management_server_IP}:8080/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}
    
    {
      "hostAliases": [
        "api.myCompany,com"
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    
  2. 將屬性 ssl_ciphers 新增至現有的虛擬主機設定 在 properties 下使用適當 OpenSSL 加密字串的 JSON 酬載。

    例如,如果您只想允許加密套件 「TLS_DHE_RSA_WITH_AES_128_GCM_SHA256」和 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,然後決定 中的 OpenSSL 加密手冊 如下表所示:

    加密套件 OpenSSL 加密字串
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE-RSA-AES128-GCM-SHA256
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256

    新增下列 properties 程式碼區塊:

    更新過的虛擬主機設定範例:

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "ssl_ciphers",
            "value": "DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    
  3. 將更新後的虛擬主機設定儲存至檔案。例如:virtualhost-payload.json
  4. 使用以下指令更新 virtualhost 設定: 請按照下列步驟更新虛擬主機 API:

    公有雲使用者:

    curl -v -X POST Content-Type: application/json
    https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u {username}
    

    Private Cloud 使用者:

    curl -v -X POST Content-Type: application/json
    http://{management_server_IP}:8080/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u {username}
    

支援的加密套件

Apigee 支援下列加密套件:

ECDHE-RSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-RSA-AES256-SHA
DHE-RSA-AES256-GCM-SHA384
DHE-RSA-AES256-SHA256
DHE-RSA-AES256-SHA
DHE-RSA-CAMELLIA256-SHA
AES256-GCM-SHA384
AES256-SHA256  
AES256-SHA
CAMELLIA256-SHA
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-SHA256
ECDHE-RSA-AES128-SHA
DHE-RSA-AES128-GCM-SHA256
DHE-RSA-AES128-SHA256
DHE-RSA-AES128-SHA
DHE-RSA-CAMELLIA128-SHA
AES128-GCM-SHA256
AES128-SHA256   
AES128-SHA 
CAMELLIA128-SHA

在虛擬主機上驗證加密套件

本節說明如何確認加密套件是否成功 透過 Edge API 修改虛擬主機上的內容

  1. 執行 取得虛擬主機 API 以取得 virtualhost 設定,如下所示:

    公有雲使用者:

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}
    

    Private Cloud 使用者:

    curl -v -X GET http://{management_server_IP}:8080/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}
    
  2. 確認屬性 ssl_ciphers 已設為新的值。

    更新過的虛擬主機設定範例:

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "ssl_ciphers",
            "value": "DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    

    在上述範例中,請注意 ssl_ciphers 已設為新值。

  3. 如果仍然看到 ssl_ciphers 的舊值,請確認您具有 並按照當中的 正確在虛擬主機上設定加密套件。 如果您漏掉任何步驟,請再次正確重複所有步驟。
  4. 如果仍無法更新或新增加密套件至虛擬主機,請 Apigee Edge 支援

在路由器上設定加密套件

本節說明如何在路由器上設定加密套件。加密套件可設為 透過路由器屬性設定 conf_load_balancing_load.balancing.driver.server.ssl.ciphers,代表 接受以冒號分隔的加密套件

如要在路由器上設定加密套件,請按照下列步驟操作:

  1. 在路由器機器的編輯器中開啟下列檔案。建立值區 然後建立該專案

    /opt/apigee/customer/application/router.properties
    

    舉例來說,如要使用 vi 開啟檔案, 輸入下列指令:

    vi /opt/apigee/customer/application/router.properties
    
  2. properties 檔案中加入以下格式的一行,替換成 colon_separated_cipher_suites 的值:
    conf_load_balancing_load.balancing.driver.server.ssl.ciphers=colon_separated_cipher_suites
    

    例如,如果您只想允許加密套件 「TLS_DHE_RSA_WITH_AES_128_GCM_SHA256」和 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,然後決定 中的 OpenSSL 加密手冊 如下表所示:

    加密套件 OpenSSL 加密字串
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE-RSA-AES128-GCM-SHA256
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256

    接著新增下列程式碼:

    conf_load_balancing_load.balancing.driver.server.ssl.ciphers=DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
    
  3. 儲存變更。
  4. 確認這個屬性檔案由 apigee 使用者擁有,如下所示:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
    
  5. 重新啟動路由器,如下所示:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    
  6. 如果您有多個路由器,請在所有路由器上重複上述步驟。

在路由器上驗證加密套件

本節說明如何確認路由器是否已成功修改加密套件。

  1. 在路由器上搜尋房源 conf_load_balancing_load.balancing.driver.server.ssl.ciphers 使用 Apigee 搜尋「/opt/apigee」資料夾中的搜尋公用程式,檢查該公用程式是否已設為 新的值如下:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_load_balancing_load.balancing.driver.server.ssl.ciphers
    
  2. 如果已成功在路由器上設定新的加密套件,上述指令會顯示 新的值

    以下是上述 search 指令在 加密套件已更新為 DHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256:

    Found key conf_load_balancing_load.balancing.driver.server.ssl.ciphers, with value, DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256, in /opt/apigee/customer//application/router.properties
    

    在上方輸出範例中,請注意 已設定「conf_load_balancing_load.balancing.driver.server.ssl.ciphers」 改成新的加密套件值這表示加密套件已成功完成 更新為 OpenSSL 加密字串DHE-RSA-AES128-GCM-SHA25和 路由器上的 ECDHE-RSA-AES128-GCM-SHA256

  3. 如果您仍看到加密套件的舊值 conf_load_balancing_load.balancing.driver.server.ssl.ciphers,然後驗證 您已遵循 正確在路由器上設定加密套件。 如果您漏掉任何步驟,請再次正確重複所有步驟。
  4. 如果仍無法修改路由器上的加密套件,請與 Apigee Edge 支援