在虚拟主机和路由器上配置加密套件

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

<ph type="x-smartling-placeholder">

本文档介绍了如何在 Apigee Edge 中在虚拟主机和路由器上配置加密套件。

加密套件是一组算法,可帮助保护使用 TLS 的网络连接。 客户端和服务器必须就要使用的特定加密套件达成一致 相互通信如果客户端和服务器未就加密套件达成一致,则 请求会失败,且 TLS 握手失败。

在 Apigee 中,加密套件应在客户端应用和 路由器。

出于以下原因,您可能需要修改 Apigee Edge 上的加密套件:

  • 避免客户端应用与 Apigee Router 之间出现任何加密套件不匹配
  • 使用更安全的加密套件来修复所有安全漏洞或提高安全性

可以在虚拟主机或 Apigee Router 上配置加密套件。注意事项 Apigee 仅接受 OpenSSL 加密字符串格式的加密套件(位于 虚拟主机和路由器通过 OpenSSL 加密手册页面 提供了相关规范中的 SSL 或 TLS 加密套件及其 OpenSSL 等效项。

例如

如果要配置 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 加密方式 虚拟主机或 Apigee Router 路由器,则需要标识 找到 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 界面
  • 使用 Edge API
。 <ph type="x-smartling-placeholder">

使用 Edge 界面

<ph type="x-smartling-placeholder">

如需使用 Edge 界面配置虚拟主机,请执行以下操作:

  1. 登录 Edge 界面
  2. 转到管理 >虚拟主机中所述。
  3. 选择要进行此更改的特定环境
  4. 选择要为其配置加密套件的特定虚拟主机。
  5. 属性下,使用以英文冒号分隔的 OpenSSL 加密字符串列表更新 Ciphers 值。

    例如,如果您希望仅允许加密套件 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256TLS_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. 使用 <ph type="x-smartling-placeholder"></ph> 获取虚拟主机 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_SHA256TLS_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 配置: <ph type="x-smartling-placeholder"></ph> 按如下方式更新虚拟主机 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 在虚拟主机上修改。

<ph type="x-smartling-placeholder">
  1. 执行 <ph type="x-smartling-placeholder"></ph> 获取虚拟主机 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 支持

在路由器上配置加密套件

<ph type="x-smartling-placeholder">

本部分介绍如何在路由器上配置加密套件。加密套件 通过路由器属性配置 conf_load_balancing_load.balancing.driver.server.ssl.ciphers,表示 以英文冒号分隔的可接受的加密套件。

<ph type="x-smartling-placeholder">

如需在路由器上配置加密套件,请执行以下操作:

  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_SHA256TLS_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. 如果您有多个路由器,请在所有路由器上重复上述步骤。

验证路由器上的加密套件

<ph type="x-smartling-placeholder">

本部分介绍了如何验证是否已在路由器上成功修改加密套件。

  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-SHA256ECDHE-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 支持