管理 UI の TLS の構成

Edge for Private Cloud v4.19.01

デフォルトでは、Management Server ノードの IP アドレスとポート 9000 を使用して HTTP で Edge 管理 UI にアクセスします。次に例を示します。

http://ms_IP:9000

または、管理 UI への TLS アクセスを構成することで、次のフォームで Edge 管理 UI にアクセスできます。

https://ms_IP:9443

この例では、ポート 9443 を使用する TLS アクセスを構成しています。ただし、Edge ではこのポート番号を使う必要はありません。他のポート番号を使うように Management Server を構成することもできます。唯一の要件は、ファイアウォールが指定のポートでトラフィックを許可していることです。

TLS ポートが開いていることを確認する

このセクションの手順で、Management Server でポート 9443 を使用するように TLS を構成します。使用するポートにかかわらず、Management Server 上で該当ポートが開いている必要があります。たとえば、次のコマンドを使用してポートを開きます。

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9443 -j ACCEPT --verbose

TLS を構成する

管理 UI への TLS アクセスを構成するには、次の手順を実施します。

  1. TLS 証明書と秘密鍵を含むキーストア JKS ファイルを生成し、Management Server ノードにコピーします。詳細については、オンプレミスの Edge での TLS / SSL の構成をご覧ください。
  2. 次のコマンドを実行して、TLS を構成します。
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
  3. HTTPS ポート番号を入力します(例: 9443)。
  4. 管理 UI への HTTP アクセスを無効にするかどうかを指定します。デフォルトでは、ポート 9000 の HTTP で管理 UI にアクセスできます。
  5. キーストア アルゴリズムを入力します。デフォルトは JKS です。
  6. キーストア JKS ファイルへの絶対パスを入力します。

    スクリプトによって、Management Server ノード上の /opt/apigee/customer/conf ディレクトリにキーストア JKS ファイルがコピーされ、ファイルの所有者が「apigee」に変更されます。

  7. 平文のキーストア パスワードを入力します。
  8. スクリプトによって、Edge 管理 UI が再起動されます。再起動後、Edge 管理 UI は TLS でのアクセスをサポートします。

    これらの設定は、/opt/apigee/etc/edge-ui.d/SSL.sh で確認できます。

プロンプトで応答するのではなく、コマンドに構成ファイルを渡すこともできます。構成ファイルは、次のプロパティを含みます。

HTTPSPORT=9443
    DISABLE_HTTP=y
    KEY_ALGO=JKS
    KEY_FILE_PATH=/opt/apigee/customer/application/mykeystore.jks
    KEY_PASS=clearTextKeystorePWord

次のコマンドを使用して、Edge UI の TLS を構成します。

/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

TLS をロードバランサで終端させる場合に Edge UI を構成する

Egde UI へリクエストを転送するロードバランサを配置している場合、ロードバランサで TLS 接続を終端させて、ロードバランサが HTTP で Edge UI にリクエストを転送するように選択できます。この構成はサポートされていますが、この構成に応じてロードバランサと Edge UI を構成する必要があります。

ユーザーが作成されたり、ユーザーが失われたパスワードのリセットをリクエストしたりする際に Edge UI がユーザーにパスワード設定メールを送信しますが、その場合は追加の構成が必要です。このメールには、パスワードを設定するかリセットするかを選択するための URL が含まれています。デフォルトでは、Edge UI が TLS を使用するように構成されていない場合、生成されたメールの URL には、HTTPS プロトコルではなく HTTP プロトコルが使用されます。HTTPS を使用するメールアドレスを生成するには、ロードバランサと Edge UI を構成する必要があります。

ロードバランサを構成するには、Edge UI へ転送されたリクエストに次のヘッダーが設定されていることを確認します。

X-Forwarded-Proto: https

Edge UI を構成するには:

  1. エディタで /opt/apigee/customer/application/ui.properties ファイルを開きます。ファイルが存在しない場合は、作成します。
    vi /opt/apigee/customer/application/ui.properties
  2. ui.properties で、次のプロパティを設定します。
    conf/application.conf+trustxforwarded=true
  3. ui.properties に対する変更を保存します。
  4. Edge UI を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

オプションの TLS プロパティの設定

Edge UI では、次の設定に使用できるオプションの TLS 構成プロパティをサポートしています。

  • デフォルトの TLS プロトコル
  • サポートされている TLS プロトコルのリスト
  • サポートされている TLS アルゴリズム
  • サポートされている TLS の暗号

これらのオプションのパラメータは、構成ファイルで次の構成プロパティを設定する場合にのみ使用可能です。

TLS_CONFIGURE=y

次の表で、これらのプロパティを説明します。

プロパティ 説明
TLS_PROTOCOL Edge UI のデフォルト TLS プロトコルを定義します。デフォルトでは、TLS 1.2 です。有効な値は、TLSv1.2、TLSv1.1、TLSv1 です。
TLS_ENABLED_PROTOCOL

有効なプロトコルのリストをカンマ区切りの配列として定義します。次に例を示します。


TLS_ENABLED_PROTOCOL=[\"TLSv1.2\", \"TLSv1.1\", \"TLSv1\"]

「"」文字をエスケープする必要があります。

デフォルトでは、すべてのプロトコルが有効になっています。

TLS_DISABLED_ALGO

無効な暗号スイートを定義し、TLS handshake に小さなキーサイズが使用されないようにするためにも使用できます。デフォルト値はありません。

TLS_DISABLED_ALGO に渡される値は、ここで説明されているように、jdk.tls.disabledAlgorithms に使用できる値に対応しています。ただし TLS_DISABLED_ALGO を設定するときは、スペース文字をエスケープする必要があります。


TLS_DISABLED_ALGO=EC\ keySize\ <\ 160,RSA\ keySize\ <\ 2048
TLS_ENABLED_CIPHERS

利用可能な TLS 暗号のリストをカンマ区切りの配列として定義します。次に例を示します。


TLS_DISABLED_ALGO=[\"TLS_DHE_RSA_WITH_AES_128_CBC_SHA\",
    \"TLS_DHE_DSS_WITH_AES_128_CBC_SHA\"]

「"」文字をエスケープする必要があります。

有効な暗号のデフォルトのリストは次のとおりです。


"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
    "TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
    "TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
    "TLS_RSA_WITH_AES_256_CBC_SHA",
    "TLS_RSA_WITH_AES_128_CBC_SHA",
    "SSL_RSA_WITH_RC4_128_SHA",
    "SSL_RSA_WITH_RC4_128_MD5",
    "TLS_EMPTY_RENEGOTIATION_INFO_SCSV"

利用可能な暗号のリストはここに記載されています。

Apigee Edge for Private Cloud では、Edge UI からのレスポンスの Set-Cookie ヘッダーに、secure フラグを追加できます。このフラグが存在する場合、Cookie は TLS 対応チャネルでのみ送信できます。存在しない場合は、Cookie がセキュアかどうかに関係なく、どのチャネルでも送信できます。

secure フラグのない Cookie を使用すると、攻撃者が Cookie をキャプチャして再利用したり、アクティブなセッションを乗っ取ったりする可能性があります。そのため、おすすめの方法はこの設定を有効にすることです。

Edge UI Cookie の secure フラグを設定するには:

  1. テキスト エディタで次のファイルを開きます。
    /opt/apigee/customer/application/ui.properties

    ファイルが存在しない場合は作成します。

  2. 次の例に示すように、ui.properties ファイルの conf_application_session.secure プロパティを true に設定します。
    conf_application_session.secure=true
  3. 変更を保存します。
  4. 次の例に示すように、apigee-serice ユーティリティを使用して Edge UI を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

変更が機能していることを確認するには、curl などのユーティリティを使用して、Edge UI のレスポンス ヘッダーを確認します。次に例を示します。

curl -i -v https://edge_UI_URL

ヘッダーには、次のような行が含まれます。

Set-Cookie: secure; ...

Edge UI で TLS を無効にする

Edge UI で TLS を無効にするには、次のコマンドを使用します。

/opt/apigee/apigee-service/bin/apigee-service edge-ui disable-ssl