管理 API の TLS を構成する

Edge for Private Cloud v4.18.05

デフォルトでは、管理 API の TLS は無効になっており、Management Server ノードの IP アドレスとポート 8080 を使って HTTP で Edge 管理 API にアクセスします。例:

    http://ms_IP:8080
    

あるいは、管理 API の TLS アクセスを、以下の形式でアクセスできるように構成することもできます。

    https://ms_IP:8443
    

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

管理 API との間のトラフィックを暗号化するには、/opt/apigee/customer/application/management-server.properties ファイル内の設定を構成します。

TLS の構成に加えて、management-server.properties ファイルを変更して、パスワードの検証(パスワードの長さと強度)を制御することもできます。

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

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

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

TLS の構成

/opt/apigee/customer/application/management-server.properties ファイルを編集して、管理 API との間のトラフィックでの TLS の使用を制御します。ファイルが存在しない場合は、作成します。

以下の手順で、管理 API への TLS アクセスを構成します。

  1. TLS の証明書と秘密鍵を含むキーストア JKS ファイルを生成します。詳細については、Edge On Premises で TLS / SSL を構成するをご覧ください。
  2. キーストア JKS ファイルを、/opt/apigee/customer/application などの Management Server ノード上のディレクトリへコピーします。
  3. 次のように、JKS ファイルのオーナーを apigee に変更します。
    chown apigee:apigee keystore.jks
    keystore.jks は、キーストア ファイルの名前です。
  4. /opt/apigee/customer/application/management-server.properties を編集して、以下のプロパティを設定します。このファイルが存在しない場合は、作成します。
        conf_webserver_ssl.enabled=true
        # Leave conf_webserver_http.turn.off set to false
        # because many Edge internal calls use HTTP.
        conf_webserver_http.turn.off=false
        conf_webserver_ssl.port=8443
        conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
        # Enter the obfuscated keystore password below.
        conf_webserver_keystore.password=OBF:obfuscatedPassword
        conf_webserver_cert.alias=apigee-devtest
    keyStore.jks はキーストア ファイルで、obfuscatedPassword は難読化されたキーストアのパスワードです。難読化されたパスワードの生成については、Edge On Premises で TLS / SSL を構成するをご覧ください。
  5. 次のコマンドで Edge Management Server を再起動します。
        /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

これで、管理 API が TLS でのアクセスをサポートするようになりました。

TLS で Edge API にアクセスするよう Edge UI を構成する

上記の手順で、Apigee は、Edge UI が HTTP で Edge API を呼び出せるように、conf_webserver_http.turn.off=false の設定を残すことをおすすめしていました。

以下の手順で、HTTPS でのみ呼び出しができるように Edge UI を構成します。

  1. 上記のように、管理 API への TLS アクセスを構成します。
  2. 管理 API への TLS が機能していることを確認した後、/opt/apigee/customer/application/management-server.properties を編集して次のプロパティを設定します。 conf_webserver_http.turn.off=true
  3. 次のコマンドで Edge Management Server を再起動します。
        /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart 
  4. /opt/apigee/customer/application/ui.properties を編集して、以下の Edge UI のプロパティを設定します。このファイルが存在しない場合は作成します。 conf_apigee_apigee.mgmt.baseurl="https://FQDN:8443/v1" FQDN は Management Server の証明書アドレスのとおりのフルドメイン名で、ポート番号は次で指定した番号です。 conf_webserver_ssl.port.
  5. 自己署名証明書を使う場合のみ(本番環境ではおすすめしません)、上記の管理 API への TLS アクセスの構成を行う場合、次のプロパティを ui.properties に追加します。 conf/application.conf+play.ws.ssl.loose.acceptAnyCertificate=true こうしなかった場合、Edge UI は自己署名証明書を拒否します。
  6. 次のコマンドで Edge UI を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Management Server の TLS プロパティ

次の表に、management-server.properties に設定できるすべての TLS / SSL プロパティを示します。

プロパティ

説明

conf_webserver_http.port=8080

デフォルトは 8080 です。

conf_webserver_ssl.enabled=false

TLS / SSL を有効 / 無効にします。TLS / SSL を有効(true)にした場合、ssl.port プロパティと keystore.path プロパティも設定する必要があります。

conf_webserver_http.turn.off=true

https に加えて http も有効 / 無効にします。HTTPS だけを使用する場合、デフォルト値(true)のままにします。

conf_webserver_ssl.port=8443

TLS / SSL のポート。

TLS / SSL が有効の場合(conf_webserver_ssl.enabled=true)に必要です。

conf_webserver_keystore.path=<path>

キーストア ファイルのパス。

TLS / SSL が有効の場合(conf_webserver_ssl.enabled=true)に必要です。

conf_webserver_keystore.password=

OBF:xxxxxxxxxx という形式の難読化されたパスワードを使います。

conf_webserver_cert.alias=

キーストア証明書の別名(省略可能)

conf_webserver_keymanager.password=

キー マネージャーにパスワードがある場合、OBF:xxxxxxxxxx の形式で難読化されたバージョンのパスワードを入力します。

conf_webserver_trust.all= <false | true>

conf_webserver_trust.store.path=<path>

conf_webserver_trust.store.password=

トラストストアの設定を構成します。すべての TLS / SSL 証明書を受け入れるかどうかを決めます(非標準のタイプを受け入れるなど)。デフォルトは false です。トラストストアのパスを指定し、OBF:xxxxxxxxxx の形式の難読化されたトラストストアのパスワードを入力します。

conf_webserver_exclude.cipher.suites=<CIPHER_SUITE_1 CIPHER_SUITE_2>

conf_webserver_include.cipher.suites=

使用を許可する暗号スイートと許可しない暗号スイートを指定します。たとえば、ある暗号に脆弱性が発見された場合、ここで除外できます。複数指定する場合は、空白で区切ります。

暗号スイートと暗号化アーキテクチャについては、次の URL をご覧ください。

http://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SunJSSE

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

以下を決める整数値です。

  • 複数クライアントのセッション情報を格納する TLS / SSL セッション キャッシュのサイズ(バイト数)。
  • TLS / SSL セッションがタイムアウトするまでの時間(ミリ秒)。