現在、Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントをご確認ください。 情報
このドキュメントでは、Apigee Edge の仮想ホストと Router で暗号スイートを構成する方法について説明します。
暗号スイートは、TLS を使用するネットワーク接続の保護に役立つ一連のアルゴリズムです。クライアントとサーバーは、メッセージの交換で使用される特定の暗号スイートに合意する必要があります。クライアントとサーバーが暗号スイートで一致しない場合、TLS handshake の失敗によりリクエストが失敗します。
Apigee では、クライアント アプリケーションと Router の間で暗号スイートを相互に合意する必要があります。
次の理由により、Apigee Edge で暗号スイートの変更が必要になる場合があります。
- クライアント アプリケーションと Apigee Router の間で暗号スイートの不一致を回避するには
- セキュリティの脆弱性の修正やセキュリティ強化のために、より安全な暗号スイートを使用する
暗号スイートは仮想ホストまたは Apigee Router のいずれかで構成できます。Apigee は、仮想ホストと Router の両方で OpenSSL 暗号文字列形式の暗号スイートのみを受け入れます。OpenSSL 暗号のマニュアルページでは、関連する仕様の SSL または TLS の暗号スイートと、それに対応する OpenSSL について説明しています。
次に例を示します。
仮想ホストまたは Apigee Router で TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
暗号スイートを構成する場合は、OpenSSL 暗号のマニュアルページで対応する 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 暗号のマニュアルページをご覧ください。
- 仮想ホストのプロパティについてよく知らない場合は、仮想ホスト プロパティのリファレンスをご覧ください。
- Private Cloud での Edge の構成方法に詳しくない場合は、Edge の構成方法をご覧ください。
仮想ホストで暗号スイートを構成する
このセクションでは、組織と環境に関連付けられた仮想ホストで暗号スイートを構成する方法について説明します。仮想ホストでは、ssl_ciphers
プロパティを使用して暗号スイートを構成できます。このプロパティは、仮想ホストでサポートされる暗号スイートのリストを表します。
Apigee がサポートする暗号スイートのリストについては、サポートされている暗号スイートをご覧ください。
仮想ホストは、次のいずれかの方法で構成できます。
- Edge UI の使用
- Edge API の使用
Edge UI の使用
Edge UI を使用して仮想ホストを構成する手順は次のとおりです。
- Edge UI にログインします。
- [管理] > [仮想ホスト] に移動します。
- この変更を行う特定の環境を選択します。
- 暗号スイートを構成する特定の仮想ホストを選択します。
-
[Properties] で、[Ciphers] の値を、OpenSSL 暗号文字列をコロンで区切ったリストを指定して更新します。
たとえば、暗号スイート
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
とTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
のみを許可する場合は、次の表に示すように、OpenSSL 暗号のマニュアルページから、対応する 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 暗号文字列をコロンで区切って追加します。
- 変更を保存します。
Edge API の使用
Edge API を使用して仮想ホストで暗号スイートを構成する手順は次のとおりです。
- 次のように
Get Virtual host API を使用して現在の仮想ホストの構成を取得します。
Public Cloud ユーザー:
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 }
-
properties
の下の既存の仮想ホスト構成 JSON ペイロードに、適切な OpenSSL 暗号文字列を使用してプロパティssl_ciphers
を追加します。たとえば、暗号スイート
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
とTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
のみを許可する場合は、次の表に示すように、OpenSSL 暗号のマニュアルページから、対応する 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 }
-
更新した仮想ホストの構成をファイルに保存します。たとえば、
virtualhost-payload.json
です。 -
次のように
仮想ホストの更新 API を使用して、
virtualhost
構成を更新し、変更を反映します。Public Cloud ユーザー:
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
構成を取得します。Public Cloud ユーザー:
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 で暗号スイートを構成する方法について説明します。暗号スイートは、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 暗号のマニュアルページから、対応する 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
- 変更を保存します。
-
以下に示すように、このプロパティ ファイルの所有者を
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 で暗号スイートが正しく変更されていることを確認する方法について説明します。
-
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
-
ルーターで新しい暗号スイートが正常に設定されると、上記のコマンドで新しい値が表示されます。
暗号スイートが
DHE-RSA-AES128-GCM-SHA256
とECDHE-RSA-AES128-GCM-SHA256
に更新されたときの上記のsearch
コマンドの結果の例を次に示します。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
に古い値が引き続き表示される場合は、Router での暗号スイートの構成で説明されているすべての手順を正しく実施していることを確認します。ステップを見逃した場合は、すべてのステップをもう一度正しくやり直します。 - それでも Router の暗号スイートを変更できない場合は、Apigee Edge サポートにお問い合わせください。