Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントに移動します。 情報
このドキュメントでは、Apigee Edge の仮想ホストと Router で暗号スイートを構成する方法について説明します。
暗号スイートは、TLS を使用するネットワーク接続を保護するアルゴリズムのセットです。クライアントとサーバーは、メッセージの交換に使用する特定の暗号スイートについて合意する必要があります。クライアントとサーバーが暗号スイートに同意しない場合、リクエストは TLS handshake の失敗で失敗します。
Apigee では、クライアント アプリケーションと Router の間で暗号スイートを相互に合意する必要があります。
Apigee Edge で暗号スイートを変更する理由としては、次のようなものがあります。
- クライアント アプリケーションと Apigee Router の間で暗号スイートの不一致を回避するには
- セキュリティの脆弱性を修正するため、またはセキュリティを強化するために、より安全な暗号スイートを使用する
暗号スイートは、仮想ホストまたは Apigee Router で構成できます。Apigee は、仮想ホストと Router の両方で、OpenSSL 暗号文字列形式の暗号スイートのみを受け入れます。OpenSSL 暗号の man ページには、関連する仕様の SSL または TLS 暗号スイートと、それに対応する OpenSSL が記載されています。
例:
仮想ホストまたは Apigee Router で TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 暗号スイートを構成する場合は、OpenSSL 暗号の man ページから対応する OpenSSL 暗号文字列を特定する必要があります。暗号スイート TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 の OpenSSL 暗号文字列は ECDHE-RSA-AES128-GCM-SHA256. です。したがって、仮想ホストまたは Apigee Router で暗号スイートを構成するときに、OpenSSL 暗号文字列 ECDHE-RSA-AES128-GCM-SHA256 を使用する必要があります。
始める前に
- さまざまな暗号スイートの OpenSSL 暗号文字列については、OpenSSL 暗号の man ページをご覧ください。
- 仮想ホストのプロパティについてよくわからない場合は、仮想ホストのプロパティ リファレンスをご覧ください。
- Private Cloud で Edge のプロパティを構成する方法について詳しくは、Edge の構成方法をご覧ください。
仮想ホストで暗号スイートを構成する
このセクションでは、組織と環境に関連付けられた仮想ホストで暗号スイートを構成する方法について説明します。暗号スイートは、仮想ホストでサポートされている暗号スイートのリストを表すプロパティ ssl_ciphers を使用して、仮想ホストで構成できます。
Apigee がサポートする暗号スイートのリストについては、サポートされている暗号スイートをご覧ください。
仮想ホストは、次のいずれかの方法で構成できます。
- Edge UI を使用する
- Edge API の使用
Edge UI の使用
Edge UI を使用して仮想ホストを構成するには、次の操作を行います。
- Edge UI にログインします。
- [Admin] > [Virtual Hosts] に移動します。
- この変更を行う特定の環境を選択します。
- 暗号スイートを構成する特定の仮想ホストを選択します。
-
[プロパティ] で、OpenSSL 暗号文字列のコロン区切りリストを使用して [暗号] の値を更新します。
たとえば、
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256とTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256の暗号スイートのみを許可する場合は、次の表に示すように、OpenSSL 暗号の man ページから対応する OpenSSL 暗号文字列を特定します。暗号スイート OpenSSL 暗号文字列 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256DHE-RSA-AES128-GCM-SHA256TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256ECDHE-RSA-AES128-GCM-SHA256次の図に示すように、コロンで区切られた OpenSSL 暗号文字列を追加します。
- 変更を保存します。
Edge API の使用
Edge API を使用して仮想ホストで暗号スイートを構成するには、次の操作を行います。
- 次のように、
仮想ホストの取得 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 } -
適切な OpenSSL 暗号文字列を使用して、既存の仮想ホスト構成 JSON ペイロードの
propertiesにssl_ciphersプロパティを追加します。たとえば、
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256とTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256の暗号スイートのみを許可する場合は、次の表に示すように、OpenSSL 暗号の man ページから対応する OpenSSL 暗号文字列を特定します。暗号スイート OpenSSL 暗号文字列 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256DHE-RSA-AES128-GCM-SHA256TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256ECDHE-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 } -
更新した仮想ホスト構成をファイルに保存します。たとえば、
virtualhost-payload.jsonです。 -
次のように、
仮想ホストの更新 API を使用して、変更内容で
virtualhost構成を更新します。パブリック クラウド ユーザー:
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 を使用して、仮想ホストで暗号スイートが正常に変更されたことを確認する方法について説明します。
-
仮想ホストの取得 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} -
プロパティ
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が新しい値で設定されていることに注意してください。 -
ssl_ciphersの古い値が引き続き表示される場合は、仮想ホストで暗号スイートを構成するで説明されているすべての手順を正しく実行したことを確認します。手順を間違えた場合は、すべての手順をもう一度正しく繰り返します。 - 上記の手順を試しても仮想ホストの暗号スイートを更新または追加できない場合は、Apigee Edge サポートにお問い合わせください。
Router で暗号スイートを構成する
このセクションでは、ルーターで暗号スイートを構成する方法について説明します。暗号スイートは、コロン区切りの受け入れ可能な暗号スイートを表す Router プロパティ conf_load_balancing_load.balancing.driver.server.ssl.ciphers を介して構成できます。
Router で暗号スイートを構成する手順は次のとおりです。
-
Router マシンで、次のファイルをエディタで開きます。存在しない場合は作成します。
/opt/apigee/customer/application/router.properties
たとえば、
viでファイルを開くには、次のように入力します。vi /opt/apigee/customer/application/router.properties
-
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 ciphers manpage から対応する OpenSSL 暗号文字列を特定します。暗号スイート OpenSSL 暗号文字列 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256DHE-RSA-AES128-GCM-SHA256TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256ECDHE-RSA-AES128-GCM-SHA256次の行を追加します。
conf_load_balancing_load.balancing.driver.server.ssl.ciphers=DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
- 変更を保存します。
-
このプロパティ ファイルの所有者が
apigeeユーザーであることを確認します。chown apigee:apigee /opt/apigee/customer/application/router.properties
-
次のように Router を再起動します。
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- 複数の Router がある場合は、すべての Router で上記の手順を繰り返します。
ルーターで暗号スイートを確認する
このセクションでは、Router で暗号スイートが正常に変更されたことを確認する方法について説明します。
-
Router で、
/opt/apigeeフォルダの Apigee 検索ユーティリティを使用してプロパティconf_load_balancing_load.balancing.driver.server.ssl.ciphersを検索し、次のように新しい値が設定されているかどうかを確認します。/opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_load_balancing_load.balancing.driver.server.ssl.ciphers
-
新しい暗号スイートがルーターに正常に設定されると、上記のコマンドで新しい値が表示されます。
次の例は、上記の
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が新しい暗号スイート値で設定されていることに注目してください。これは、暗号スイートが Router の OpenSSL 暗号文字列DHE-RSA-AES128-GCM-SHA25とECDHE-RSA-AES128-GCM-SHA256に正常に更新されたことを示します。 -
暗号スイート
conf_load_balancing_load.balancing.driver.server.ssl.ciphersの古い値が引き続き表示される場合は、ルーターで暗号スイートを構成するで説明されているすべての手順を正しく実行したことを確認します。手順を間違えた場合は、すべての手順をもう一度正しく繰り返します。 - 上記の手順を試してもルーターの暗号スイートを変更できない場合は、Apigee Edge サポートにお問い合わせください。