仮想ホストの表現
仮想ホストの定義に使用する XML オブジェクトは、Edge のバージョン(Cloud または Private Cloud)によって異なります。
Private Cloud を使用している場合は、Edge のバージョンに対応した正しい XML を使用していることを確認してください。
Cloud および Private Cloud 4.17.01 以降
<VirtualHost name="vhostName"> <Port>portNumber</Port> <BaseUrl>http://myCo.com</BaseUrl> <OCSPStapling>offOn</OCSPStapling> <HostAliases> <HostAlias>hostAlias</HostAlias> </HostAliases> <Interfaces> <!-- Private Cloud only --> <Interface>interfaceName</Interface> </Interfaces> <RetryOptions> <RetryOption>option</RetryOption> </RetryOptions> <ListenOptions> <ListenOption>option</ListenOption> </ListenOptions> <SSLInfo> <Enabled>trueFalse</Enabled> <ClientAuthEnabled>trueFalse</ClientAuthEnabled> <KeyStore>ref://keystoreRef</KeyStore> <KeyAlias>keyAlias</KeyAlias> <TrustStore>ref://truststoreRef</TrustStore> <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors> </SSLInfo> <!-- UseBuiltInFreeTrialCert is for Edge Cloud only --> <UseBuiltInFreeTrialCert>trueFalse</UseBuiltInFreeTrialCert> <PropagateTLSInformation> <!-- PropagateTLSInformation is Alpha in the Cloud only --> <ConnectionProperties>trueFalse</ConnectionProperties> <ClientProperties>trueFalse</ClientProperties> </PropagateTLSInformation> <Properties> <Property name="proxy_read_timeout">timeout</Property> <Property name="keepalive_timeout">timeout</Property> <Property name="proxy_request_buffering">onOff</Property> <Property name="proxy_buffering">onOff</Property> <!-- ssl_protocols is Private Cloud only --> <Property name="ssl_protocols">protocolList</Property> <Property name="ssl_ciphers">cipherList</Property> </Properties> </VirtualHost>
Private Cloud 4.16.01 から 4.16.09
<VirtualHost name="vhostName"> <Port>portNumber</Port> <HostAliases> <HostAlias>hostAlias</HostAlias> </HostAliases> <Interfaces> <Interface>interfaceName</Interface> </Interfaces> <SSLInfo> <Enabled>trueFalse</Enabled> <ClientAuthEnabled>trueFalse</ClientAuthEnabled> <KeyStore>ref://keystoreRef</KeyStore> <KeyAlias>keyAlias</KeyAlias> <TrustStore>ref://truststoreRef</TrustStore> <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors> </SSLInfo> </VirtualHost>
Private Cloud 4.15.07 以前
<VirtualHost name="vhostName"> <Port>portNumber</Port> <HostAliases> <HostAlias>hostAlias</HostAlias> </HostAliases> <Interfaces> <Interface>interfaceName</Interface> </Interfaces> <SSLInfo> <Enabled>trueFalse</Enabled> <ClientAuthEnabled>trueFalse</ClientAuthEnabled> <KeyStore>keystore</KeyStore> <KeyAlias>keyAlias</KeyAlias> <TrustStore>truststore</TrustStore> <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors> <Ciphers> <Cipher>cipher</Cipher> <Cipher>cipher</Cipher> </Ciphers> <Protocols> <Protocol>protocol</Protocol> <Protocol>protocol</Protocol> </Protocols> </SSLInfo> </VirtualHost>
仮想ホストの構成プロパティ
次の表に、仮想ホストの構成に使用するプロパティを示します。
プロパティ | 説明 | デフォルト | 必須 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
VirtualHost |
仮想ホストの名前を指定します。API プロキシを構成するときに、この名前で仮想ホストを参照します。 name 属性に使用できる文字は、A-Z0-9._\-$% に制限されています。 |
なし | ○ | ||||||||||||
Port |
仮想ホストが使用するポート番号を指定します。このポートが Edge Router で開いていることを確認してください。
Cloud の場合: 仮想ホストを作成するときに、ポート 443 を指定する必要があります。省略すると、デフォルトで 443 に設定されます。443 以外のポート番号を使用している仮想ホストがある場合は、ポート番号を変更できません。 Private Cloud リリース 4.16.01 から 4.17.05 の場合: 仮想ホストを作成するときに、仮想ホストが使用する Router のポートを指定します。たとえば、ポート 9001 を指定します。デフォルトでは、Router は "apigee" ユーザーとして実行されますが、このユーザーには特権ポート(通常は 1024 以下のポート)へのアクセス権がありません。Router を保護ポートにバインドする仮想ホストを作成する場合は、これらのポートにアクセス可能なユーザーとして実行されるように Router を構成する必要があります。詳しくは、仮想ホストの設定をご覧ください。 4.16.01 より前の Private Cloud リリースの場合: Router は、指定された証明書を使用して、特定のポートで仮想ホストごとに 1 つの HTTPS 接続をリッスンします。したがって、Router の指定ポートで TLS が終了する場合、複数の仮想ホストが同じポート番号を使用することはできません。 |
なし | ○ | ||||||||||||
BaseUrl | Edge UI で、仮想ホストにデプロイされる API プロキシの URL を上書きします。これは、Edge Router の前に外部のロードバランサを配置している場合に便利です。詳細については、Private Cloud 用 API への TLS アクセスの構成をご覧ください。
|
なし | × | ||||||||||||
OCSPStapling |
OCSP(Online Certificate Status Protocol)クライアントは、OCSP レスポンダーにステータス リクエストを送信し、TLS 証明書が有効かどうかを確認します。TLS 証明書が有効かどうかはレスポンスに示されます。 有効にすると、OCSP Stapling により、一方向 TLS の TLS サーバーとして機能する Edge が、OCSP レスポンダーを直接クエリして、レスポンスをキャッシュに保存できるようになります。Edge は、TLS handshake の一環として、このレスポンスを TLS クライアントに返すか、ステープルします。詳細については、サーバーで OCSP Stapling を有効にするをご覧ください。 OCSP Stapling を有効にするには、TLS を有効にする必要があります。有効にするには |
off | × | ||||||||||||
HostAliases | |||||||||||||||
HostAlias |
Router の仮想ホストの DNS 名。この名前は一般に公開されます。また、ポート番号を含めることもできます。仮想ホストのホスト エイリアス名とポート番号の組み合わせは、Edge 環境のすべての仮想ホストで一意にする必要があります。異なるホスト エイリアスであれば、複数の仮想ホストで同じポート番号を使用できます。 ホスト エイリアスと一致する DNS エントリと CNAME レコードを作成する必要があります。ホスト エイリアスは、クライアントが
1 つの仮想ホストの複数の DNS エントリに合わせて、同じ仮想ホストの定義に複数の ホスト エイリアスにワイルドカード(*)を使用できます。ワイルドカード文字「*」は、ホスト エイリアスの先頭(最初の「.」の前)でのみ使用でき、他の文字と混在させることはできません。たとえば、 Cloud の場合: 443 以外のポート番号を使用している仮想ホストがある場合、ホスト エイリアスの追加または削除はできません。 Private Cloud の場合: ホスト エイリアスの設定に DNS エントリではなく、Router の IP アドレスを使用する場合は、各 Router の IP アドレスと仮想ホストのポートを指定して、Router ごとに別のホスト エイリアスを追加します。 |
なし | ○ | ||||||||||||
Interfaces | Edge for Private Cloud でのみ利用可能 | ||||||||||||||
Interface |
たとえば、ポートを en0 にのみバインドする場合は、次のようにします。 <Interfaces> <Interface>en0</Interface> </Interfaces> システムで使用可能なインターフェースを確認するには、"ifconfig -a" コマンドを実行します。 |
なし | すべてのインターフェース | ||||||||||||
RetryOptions | Edge Cloud と Private Cloud 4.18.01 以降で使用可能。 | ||||||||||||||
RetryOption |
Message Processor が停止したときに、Router がこの仮想ホストに対応する方法を構成します。 複数の値を指定する場合は、
複数の値を指定すると、Router は論理和を使用して、これらの値を組み合わせます。 例: <RetryOptions> <RetryOption>http_599</RetryOption> <RetryOption>error</RetryOption> <RetryOption>timeout</RetryOption> <RetryOption>invalid_header</RetryOption> </RetryOptions> |
||||||||||||||
ListenOptions | Private Cloud 4.18.01 以降と Edge Cloud で、Apigee サポートにリクエストを送信する場合に使用可能。 | ||||||||||||||
ListenOption |
TCP パススルー モードで ELB を使用して Edge Router に対するリクエストを処理する場合、Router は実際のクライアント IP アドレスではなく、ELB の IP アドレスをクライアント IP アドレスとして扱います。Router で実際のクライアント IP アドレスを使用する必要がある場合は、ELB で
例: <ListenOptions> <ListenOption>proxy_protocol</ListenOption> </ListenOptions> 後で |
||||||||||||||
SSLInfo | |||||||||||||||
Enabled |
一方向の TLS / SSL を有効にします。証明書と秘密鍵を含むキーストアが定義されている必要があります。 Cloud の場合: Symantec、VeriSign などの信頼できる事業体によって署名された証明書が必要です。自己署名証明書、または自己署名 CA によって署名されたリーフ証明書は使用できません。 Cloud の場合: 443 以外のポートを使用するように構成された仮想ホストがある場合、TLS の設定は変更できません。つまり、TLS の設定を有効から無効に変更することや、無効から有効に変更することはできません。 |
false | × | ||||||||||||
ClientAuthEnabled | Edge(サーバー)とアプリ(クライアント)間で双方向の TLS を有効にします。双方向の TLS を有効にするには、Edge に TLS クライアントの証明書を含むトラストストアを設定する必要があります。 | false | × | ||||||||||||
KeyStore |
Edge 上のキーストアの名前。 Apigee では、Router を再起動せずにキーストアを変更できるように、参照でキーストア名を指定することをおすすめします。詳細については、TLS の構成オプションをご覧ください。 |
なし | Enabled が true の場合は必須 | ||||||||||||
KeyAlias | 証明書と秘密鍵をキーストアにアップロードしたときに指定されたエイリアス。エイリアス名をそのまま指定する必要があります。参照は使用できません。詳細については、TLS の構成オプションをご覧ください。 | なし | Enabled が true の場合は必須 | ||||||||||||
TrustStore |
Edge 上で、双方向 TLS で使用される証明書または証明書チェーンを含むトラストストアの名前。 Apigee では、Router を再起動せずにトラストストアを変更できるように、参照でトラストストア名を指定することをおすすめします。詳細については、TLS の構成オプションをご覧ください。 |
なし | × | ||||||||||||
IgnoreValidationErrors |
true の場合、TLS 証明書エラーを無視します。これは、cURL の "-k" オプションに似ています。 このオプションは、ターゲット サーバーとターゲット エンドポイントに TLS を構成し、双方向 TLS を使用する仮想ホストを構成する場合に有効です。 ターゲット エンドポイント / ターゲット サーバーでこの設定を使用した場合に、SNI が有効なバックエンド システムからサブジェクトの識別名(DN)がホスト名と一致しない証明書が返されたとき、このエラーは無視できず、接続は失敗します。 |
false | × | ||||||||||||
Ciphers |
Edge for Private Cloud バージョン 4.15.07 以前の場合のみ。 仮想ホストでサポートされる暗号を指定します。暗号を指定しないと、JVM で使用可能なすべての暗号が許可されます。 暗号を制限するには、次の要素を追加します。 <Ciphers> <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Cipher> <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</Cipher> </Ciphers> |
JVM でサポートされるすべて | × | ||||||||||||
Protocols |
Edge for Private Cloud バージョン 4.15.07 以前の場合のみ。 仮想ホストでサポートされるプロトコルを指定します。プロトコルを指定しないと、JVM で使用可能なすべてのプロトコルが許可されます。 プロトコルを制限するには、次の要素を追加します。 <Protocols> <Protocol>TLSv1</Protocol> <Protocol>TLSv1.2</Protocol> <Protocol>SSLv2Hello</Protocol> </Protocols> |
JVM でサポートされるすべて | × | ||||||||||||
UseBuiltInFreeTrialCert | Edge Cloud でのみ使用可能。 | ||||||||||||||
UseBuiltInFreeTrialCert |
有料の Edge for Cloud アカウントをお持ちで、まだ TLS 証明書と鍵を準備していない場合は、Apigee 無料トライアル証明書と鍵を使用する仮想ホストを作成できます。つまり、先にキーストアを作成しなくても仮想ホストを作成できます。 Apigee 無料トライアルの証明書は、 |
false | × | ||||||||||||
PropagateTLSInformation | Edge Cloud のアルファ版でのみ使用できます。 | ||||||||||||||
ConnectionProperties |
Edge による TLS 接続情報の収集を有効にします。この情報は、API プロキシのフロー変数として使用できます。詳細については、API プロキシでの TLS 接続情報へのアクセスをご覧ください。 |
false | × | ||||||||||||
ClientProperties |
双方向 TLS で Edge によるクライアント証明書情報の収集を有効にします。この情報は、API プロキシのフロー変数として使用できます。詳細については、API プロキシでの TLS 接続情報へのアクセスをご覧ください。 |
false | × | ||||||||||||
Properties | Edge Cloud と Private Cloud 4.17.01 以降で使用可能。 | ||||||||||||||
proxy_read_timeout |
Message Processor と Router 間の接続がタイムアウトするまでの時間を秒単位で設定します。この期間内に Message Processor からレスポンスを取得できなった場合、Router は接続を切断して HTTP 504 レスポンスを返します。 proxy_read_timeout には、Message Processor で使用されるターゲット タイムアウト値よりも大きい値を設定する必要があります。これにより、Router がタイムアウトする前に Message Processor がレスポンスを返せるようになります。Message Processor のデフォルトのターゲット タイムアウトは 55 秒(55,000 ミリ秒)です。この値は、Message Processor の |
57 | × | ||||||||||||
keepalive_timeout |
クライアントが Keep-Alive ヘッダーを含むリクエストを送信した場合に、クライアントと Router 間の接続がタイムアウトするまでの時間を秒単位で設定します。この期間が経過するまで、Router は接続状態を維持します。 この期間が経過しても Message Processor からのレスポンスを待機している場合、Router は接続を終了します。タイムアウトの残り時間は、Router がクライアントにレスポンスを返してから計算されます。 |
65 | × | ||||||||||||
ssl_ciphers |
仮想ホストでサポートされる暗号を設定します。Router で設定されたデフォルトの暗号は上書きされます。 次のように、コロン区切りの暗号リストを指定します。 <Property name="ssl_ciphers">HIGH:!aNULL:!MD5:!DH+3DES:!kEDH;</Property> このトークンの構文と指定可能な値については、https://www.openssl.org/docs/man1.0.2/apps/ciphers.html をご覧ください。このトークンで使用するのは OpenSSL 暗号名(AES128-SHA256 など)です。Java / JSSE 暗号名(TLS_RSA_WITH_AES_128_CBC_SHA256 など)ではないのでご注意ください。 |
HIGH:!aNULL: !MD5: !DH+3DES: !kEDH |
× | ||||||||||||
ssl_protocols |
Edge for Private Cloud でのみ利用可能 仮想ホストでサポートされる TLS プロトコルをスペース区切りのリストで設定します。Router で設定されたデフォルト プロトコルは上書きされます。 注: 2 つの仮想ホストで同じポートを共有する場合は、それらの 次のように、TLS プロトコルをスペース区切りのリストで指定します。 <Property name="ssl_protocols">TLSv1 TLSv1.2</Property> |
TLSv1 TLSv1.1 TLSv1.2 | × | ||||||||||||
proxy_request_buffering |
リクエスト本文のバッファリングを有効(on)または無効(off)にします。バッファリングを有効にすると、Message Processor に送信する前に Router がリクエスト本文全体をバッファに格納します。エラーが発生すると、Router は別の Message Processor で再試行します。 off に設定すると、バッファリングが無効になり、リクエスト本文は受信後すぐに Message Processor に送信されます。エラーが発生した場合、Router は別の Message Processor で再試行しません。 |
on | × | ||||||||||||
proxy_buffering | レスポンスのバッファリングを有効(on)または無効(off)にします。バッファリングを on にすると、Router はレスポンスをバッファに格納します。バッファリングを off にした場合、Router がレスポンスを受信するとすぐに、クライアントに転送されます。 | on | × |