定義項目
カテゴリ | プロパティ | プロパティ名 | get | set | list |
---|---|---|---|---|---|
× | × | ○ | |||
× | × | ○ | |||
× | × | ○ | |||
name | ○ | × | × | ||
security-enabled | ○ | × | × | ||
× | × | ○ | |||
dns-lookup-enabled | ○ | ○ | × | ||
dns-lookup-enabled-for-local-name | ○ | ○ | × | ||
header-buffer-length-bytes | ○ | ○ | × | ||
max-connections | ○ | ○ | × | ||
max-form-post-size-bytes | ○ | ○ | × | ||
max-post-size-bytes | ○ | ○ | × | ||
max-request-headers | ○ | ○ | × | ||
max-request-parameters | ○ | ○ | × | ||
max-response-headers | ○ | ○ | × | ||
request-check | ○ | ○ | × | ||
timeout-seconds | ○ | ○ | × | ||
uri-encoding | ○ | ○ | × | ||
xpowered-by | ○ | ○ | × | ||
× | × | ○ | |||
cert-nickname | ○ | ○ | × | ||
client-auth | ○ | ○ | × | ||
tls-enabled | ○ | ○ | × | ||
tls11-enabled | ○ | ○ | × | ||
tls12-enabled | ○ | ○ | × | ||
ssl3-tls-ciphers | ○ | ○ | × | ||
× | × | ○ | |||
× | × | ○ | |||
address | ○ | ○ | × | ||
enabled | ○ | ○ | × | ||
name | ○ | × | × | ||
port | ○ | ○ | × | ||
protocol | ○ | × | × | ||
thread-pool | ○ | × | × | ||
transport | ○ | × | × | ||
× | × | ○ | |||
× | × | ○ | |||
max-connections-count | ○ | ○ | × | ||
name | ○ | × | × | ||
read-timeout-millis | ○ | ○ | × | ||
write-timeout-millis | ○ | ○ | × |
■ネットワーク設定
${clusterName_instanceName_configName}.network-config
■プロトコル一覧
${clusterName_instanceName_configName}.network-config.protocols
■プロトコル
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}
ポイント
${protocol-name}には、以下を指定します。
HTTPリスナーの場合:http-listener-1
HTTPSリスナーの場合:http-listener-2
プロトコル名
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.name
プロトコルの名前です。
HTTPリスナーの場合:http-listener-1
HTTPSリスナーの場合:http-listener-2
HTTPリスナーのセキュリティ
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.security-enabled
リスナーが、HTTPS用(true)/否か(false)を表します。
HTTPリスナー(http-listener-1)の場合:false
HTTPSリスナー(http-listener-2)の場合:true
■HTTP
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.http
リモートホストにおけるDNS逆引きの有効化
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.http.dns-lookup-enabled
DNS逆引きを有効にする(true)/しない(false)を指定します。
true
DNS逆引きを行います。ただし、Webサーバと連携しており、Webサーバが逆引きを行った場合、Webコンテナでは逆引きを行いません。どちらの場合でもServletRequest#getRemoteHost()は逆引き結果を返します。
false
DNS逆引きを行いません。なお、Webサーバと連携しており、Webサーバが逆引きを行った場合、ServletRequest#getRemoteHost()は逆引き結果を返します。
true
false
false
ローカルホストにおけるDNS逆引きの有効化
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.http.dns-lookup-enabled-for-local-name
この定義項目はWebサーバと連携しない場合のみ有効です。
DNS逆引きを有効にする(true)/しない(false)を指定します。
true
false
true
受信バッファーサイズ
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.http.header-buffer-length-bytes
リクエストライン、ヘッダを解析するために使用するバッファのサイズを指定する設定です。大きなCookieを使用する場合や、ヘッダの内容が大きくなる場合になどに、値を増やしてください。
なお、以下の式を満たす値を指定する必要があります。
受信バッファーサイズ > リクエストラインと全リクエストヘッダーの合計サイズ
リクエストラインと全リクエストヘッダーの合計サイズが受信バッファサイズに指定した値を超えることによりリクエスト処理ができない場合、ステータスコード400(Bad Request)が返却される、または接続が切断されます。
また本項目の値を増やした場合、メモリ使用量(ヒープ領域)が増大する可能性があります。
以下の式で見積もった値をメモリ使用量に加算してください。
受信バッファーサイズ × スレッドプールの最大プールサイズ (単位:バイト)
1~2147483647
49152
1回のコネクションで処理可能なリクエスト数
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.http.max-connections
キープアライブの有効/無効および、1回のコネクションで処理可能なリクエスト数を指定します。
0:キープアライブ無効
-1:キープアライブ有効、1回のコネクションで処理可能なリクエスト数は無制限
1以上:キープアライブ有効、1回のコネクションで処理可能なリクエスト数に上限あり(設定値が上限)
-1~2147483647
0
POSTリクエストの最大サイズ
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.http.max-form-post-size-bytes
POSTで送られたBODYの最大サイズをバイト単位で指定します。
この値が有効なのは、Content-Typeヘッダがapplication/x-www-form-urlencodedである、かつHttpServletRequestの以下のAPIで値を取得した場合です。
getParameter
getParameterNames
getParameterValues
getParameterMap
Content-Lengthヘッダーの値が指定された値よりも大きい場合、上記APIを実行した際にIllegalStateExceptionがスローされます。
注意
ServletRequestのgetReader/getInputStreamで取得したReader/ServletInputStreamを使用して読み込む場合は、無効です。この場合にサイズ制限を行う必要がある場合は、アプリケーション側でサイズをチェックするか、「リクエストBODYの最大サイズ」を設定してください。
Servletのファイルアップロード機能を利用する場合は、この制限値は有効になりません。詳細は「2.6.5 ファイルアップロード機能」を参照してください。
1~2147483647(Byte)
2097152(Byte)
リクエストBODYの最大サイズ
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.http.max-post-size-bytes
リクエストBODYの最大サイズをバイト単位で指定します。「POSTリクエストの最大サイズ」とは異なり、getInputStream/getReaderに対しても有効になります。リクエストヘッダのContent-Lengthが設定値よりも大きい場合、リクエストは処理されず、ステータスコード400(Bad Request)が返却される、または接続が切断されます。Transfer-Encoding: chunkedの場合は、アプリケーション処理は実施されますが、リクエストBODYのサイズが設定値以上の場合は、アプリケーションにIOExceptionを通知したり、BODYを取得できなくなります。
-1を指定した場合、リクエストBODYの最大サイズのチェックを実施しません。
-1~2147483647(Byte)
-1
リクエストヘッダ数の上限値
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.http.max-request-headers
リクエストヘッダ数の上限値を指定します。上限値を超過したヘッダがリクエストに含まれる場合、リクエストは処理されず、ステータスコード400(Bad Request)が返却される、または接続が切断されます。通常は初期値から変更する必要はありませんが、大量のヘッダが付与されるアプリケーションを利用する場合は、上限値を増やしてください。
1~2147483647
100
HTTPリクエストパラメータ数の最大値
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.http.max-request-parameters
HTTPリクエストパラメータ数の最大値を設定します。Webコンテナは最大値までのパラメータを読み込み、最大値を超えた分のパラメータは無視します。
「-1」を指定した場合、パラメータ数は制限されません。
なお、POSTリクエストの最大サイズ(max-form-post-size-bytes)も指定している場合、POSTリクエストの最大サイズの制限が先に有効になります。
-1~2147483647
10000
レスポンスヘッダ数の上限値
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.http.max-response-headers
レスポンスヘッダ数の上限値を指定します。上限値を超過してレスポンスヘッダを設定しようとすると、IllegalStateExceptionがアプリケーションに通知される、またはレスポンスがクライアントに返却されずに接続が切断されます。
1 ~ 2147483647
100
注意
0または負数を設定した場合、動作時に異常となる可能性があります。記載された範囲内で設定してください。
設定値を小さくすると、これまで正常に処理されたリクエストがエラーになる可能性があるため、初期値(100)よりも大きな値を設定することを推奨します。
Webコンテナへアクセスする運用形態
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.http.request-check
Webコンテナへアクセスする運用形態を指定します。
direct
Webサーバを経由しない運用の場合に指定します。Webサーバを経由したリクエストを受信した場合、Webコンテナはステータスコード400(Bad Request)を返却し、サーバーログにWEB0791メッセージを出力します。
webserver
Webサーバを経由する運用の場合に指定します。Webサーバを経由していないリクエストを受信した場合、Webコンテナはステータスコード400(Bad Request)を返却し、サーバーログにWEB0791メッセージを出力します。
nocheck
Webサーバを経由するリクエストを送信し、かつ故障監視などでWebコンテナへ直接リクエストを送信する場合に指定します。運用形態のチェックを行いません。この場合、セキュリティ強化のため、定義項目「要求を受け付けるIPアドレス」にWebサーバコネクタおよび負荷分散装置などのIPアドレスを指定してください。
direct
webserver
nocheck
direct
HTTP接続のタイムアウト
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.http.timeout-seconds
以下の各接続を維持する秒数、つまりタイムアウトするまでの秒数です。
本定義項目で設定した値が、以下のすべてのタイムアウト値として適用されます。
キープアライブ接続
Webコンテナがレスポンスを返却後、次のリクエストが来るまでの間キープアライブ接続を維持する時間
HTTPの接続
HTTP接続後、リクエストがスレッドプールのキューに格納されるまで接続を維持する時間
HTTP接続キュー
スレッドプールのキューに格納後、リクエストがスレッドで処理を開始されるまで接続を維持する時間
10~2147483647(秒)
15
注意
本定義項目の値はキープアライブを"無効"とした場合でも、10以下の値を設定しないようにしてください。
リクエストURIの解析に使用するエンコーディング
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.http.uri-encoding
リクエストのURIの解析に使用するエンコーディングを指定します。
「SJIS」、「EUC_JP」など、Javaでサポートされているエンコーディング
UTF-8
X-Powered-By ヘッダーフィールド
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.http.xpowered-by
Webコンテナが生成するHTTPレスポンスヘッダーに、X-Powered-Byヘッダーフィールドを含める(true)/含めない(false)を指定します。
true
false
false
■SSL
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.ssl
証明書のニックネーム
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.ssl.cert-nickname
キーストアに含まれる証明書の別名を指定します。
任意の文字列
s1as
クライアント認証
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.ssl.client-auth
クライアント認証の動作を指定します。以下のいずれかを指定します。
空文字
クライアント認証を行いません。
want
クライアント証明書が送信された場合はクライアント認証を行います。
送信されなかった場合はクライアント認証を行わず、処理を継続します。
need
必ずクライアント認証を行います。
クライアント証明書が送信されなかった場合は認証エラーになります。
空文字
want
need
空文字
TLS1.0有効化
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.ssl.tls-enabled
TLS1.0の有効(true)/無効(false)を指定します。
true
false
true
TLS1.1有効化
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.ssl.tls11-enabled
TLS1.1の有効(true)/無効(false)を指定します。
true
false
true
TLS1.2有効化
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.ssl.tls12-enabled
TLS1.2の有効(true)/無効(false)を指定します。
true
false
true
暗号化方式群
${clusterName_instanceName_configName}.network-config.protocols.protocol.${protocol-name}.ssl.ssl3-tls-ciphers
TLS1.0/TLS1.1/TLS1.2で利用可能な暗号化方式を指定します。指定時は暗号化方式にプレフィックスとしてプラス("+")を付加します。複数指定する場合はカンマ(",")で区切ります。本項目を設定した場合、指定した暗号化方式のみが利用可能になります。
下記の暗号化方式、プラス("+")、カンマ(",")
暗号化方式 |
---|
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA |
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA |
SSL_RSA_WITH_3DES_EDE_CBC_SHA |
TLS_DHE_DSS_WITH_AES_128_CBC_SHA |
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 |
TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 |
TLS_DHE_RSA_WITH_AES_128_CBC_SHA |
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 |
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 |
TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA |
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA |
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 |
TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 |
TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA |
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA |
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 |
TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 |
TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA |
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA |
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 |
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 |
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 |
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 |
TLS_EMPTY_RENEGOTIATION_INFO_SCSV |
TLS_RSA_WITH_AES_128_CBC_SHA |
TLS_RSA_WITH_AES_128_CBC_SHA256 |
TLS_RSA_WITH_AES_128_GCM_SHA256 |
asadmin setサブコマンドで値を省略して定義項目名と「=」だけを指定すると、本項目は削除されます。
本項目が削除された場合、使用可能なすべての暗号化方式が有効になります。
なし(すべての暗号化方式が有効)
ポイント
暗号化方式は、以下のフォーマットで表されます。
[SSLまたはTLS]_[鍵共有に使用する方式]_WITH_[メッセージの暗号化に使用する方式]_[ハッシュ関数]
メッセージの暗号化に使用する方式の鍵長、ブロック長は以下のとおりです。
メッセージの暗号化に | 鍵長 | ブロック長 |
---|---|---|
3DES_EDE_CBC | 168ビット | 64ビット |
AES_128_CBC | 128ビット | 128ビット |
AES_128_GCM | 128ビット | 128ビット |
ハッシュ関数は以下のいずれかを使用します。
ハッシュ関数の表記 | ハッシュ関数 |
---|---|
SHA | SHA-1 |
SHA256 | SHA-256 |
注意
SSL通信で使用する暗号化方式は、Webブラウザ等のクライアントがサポートする暗号化方式や優先順位に依存します。クライアント側の動作についてはクライアントのドキュメントを参照してください。
本定義項目で指定する鍵共有に使用する方式、メッセージの暗号化に使用する方式、ハッシュ関数が、以下のような公的機関で策定された最新の基準やガイドラインで推奨されているか確認してください。
NIST(National Institute of Standards and Technology: 米国国立標準技術研究所)
「SP 800-57: Recommendation for Key Management」
「SP 800-131A: Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths」
European Network of Excellence in Cryptology(ECRYPT) II
「ECRYPT II Yearly Report on Algorithms and Key Lengths」
総務省、経済産業省
「電子政府における調達のために参照すべき暗号のリスト(CRYPTREC暗号リスト)」
■ネットワークリスナー一覧
${clusterName_instanceName_configName}.network-config.network-listeners
■ネットワークリスナー
${clusterName_instanceName_configName}.network-config.network-listeners.network-listener.${network-listener-name}
ポイント
なお、${network-listener-name}には、以下を指定します。
HTTPリスナー: http-listener-1
HTTPSリスナー: http-listener-2
運用管理用HTTPリスナー: admin-listener
ネットワークアドレス
${clusterName_instanceName_configName}.network-config.network-listeners.network-listener.${network-listener-name}.address
HTTPリスナーがバインドするIPアドレスを指定します。
サーバにIPアドレスが複数ある場合、HTTPリスナーで使用するIPアドレスを指定してください。
サーバで有効なすべてのIPアドレスを使用する場合は、「0.0.0.0」を指定してください。
任意の文字列
0.0.0.0
HTTPリスナーの有効化
${clusterName_instanceName_configName}.network-config.network-listeners.network-listener.${network-listener-name}.enabled
HTTPリスナーを有効にする(true)/しない(false)を指定します。「false」を指定した場合は、ポートが閉塞されます。
注意
以下の場合、Webサーバとの連携が解除され、「Webコンテナへアクセスする運用形態」が“direct”に設定されます。
Webサーバと連携しているIJServerクラスタに対して、falseを指定した場合
そのため、本定義項目の設定時に「Webコンテナへアクセスする運用形態」の設定結果のメッセージも合わせて出力されることがあります。
true
false
true
HTTPリスナー名
${clusterName_instanceName_configName}.network-config.network-listeners.network-listener.${network-listener-name}.name
HTTPリスナーの名前です。
HTTPリスナーの場合:http-listener-1
HTTPSリスナーの場合:http-listener-2
運用管理用HTTPリスナーの場合:admin-listener
ポート番号
${clusterName_instanceName_configName}.network-config.network-listeners.network-listener.${network-listener-name}.port
リスナーが待機するポート番号です。
IJServerクラスタ配下のサーバーインスタンスのポート番号は、以下のシステムプロパティとして定義されています。
HTTPリスナーの場合:HTTP_LISTENER_PORT
HTTPSリスナーの場合:HTTP_SSL_LISTENER_PORT
運用管理用HTTPリスナーの場合:ASADMIN_LISTENER_PORT
IJServerクラスタ配下のサーバーインスタンスのポート番号を変更する場合は、本項目を更新せず、上記のシステムプロパティの値を変更してください。
変更方法の例は、「2.7.1.1 HTTPリスナーのポート番号の変更」を参照してください。
また、運用管理用HTTPリスナーのポート番号の変更については、「6.1 Interstage Java EE 7 DASサービスのチューニング」を参照してください。
注意
ポート番号には、システム上のアプリケーションを含むすべてのサービスにおいて、それぞれ異なるポート番号を設定する必要があります。以下の値を設定しないでください。
システム内の他のサービス、システム上のアプリケーションが使用するポート番号
システムが動的に割り当てる領域のポート番号(エフェメラルポート)
ポート番号の設定については、「付録D ポート番号」を参照してください。
1~65535
一般ユーザでJava EEアプリケーションを運用する場合、1~1024のポートを使用することはできません。
Interstage Java EE 7 DASサービス
HTTPリスナー:28484
HTTPSリスナー:28585
運用管理用HTTPリスナー:12021
IJServerクラスタ配下のサーバーインスタンス
HTTPリスナー:システムプロパティHTTP_LISTENER_PORT(自動採番)
HTTPSリスナー:システムプロパティHTTP_SSL_LISTENER_PORT(自動採番)
運用管理用HTTPリスナー:システムプロパティASADMIN_LISTENER_PORT(自動採番)
リスナーのプロトコル
${clusterName_instanceName_configName}.network-config.network-listeners.network-listener.${network-listener-name}.protocol
リスナーが参照するプロトコル名です。
HTTPリスナーの場合:http-listener-1
HTTPSリスナーの場合:http-listener-2
リスナーのスレッドプール
${clusterName_instanceName_configName}.network-config.network-listeners.network-listener.${network-listener-name}.thread-pool
リスナーが参照するスレッドプール名です。
HTTPリスナー/HTTPSリスナーの場合:http-thread-pool
リスナーのトランスポート
${clusterName_instanceName_configName}.network-config.network-listeners.network-listener.${network-listener-name}.transport
リスナーが参照するトランスポート名です。
tcp
■トランスポート一覧
${clusterName_instanceName_configName}.network-config.transports
■トランスポート
${clusterName_instanceName_configName}.network-config.transports.transport.tcp
最大接続数
${clusterName_instanceName_configName}.network-config.transports.transport.tcp.max-connections-count
リスナーポートのソケットのバックログ数です。
接続がアクセプトされるまでの間、接続要求を保持することができます。
注意
OSの設定によって、ソケットのバックログに滞留可能なリクエストの数が、本プロパティでの設定値と異なる可能性があります。
特にWindowsの場合、200以上の値が指定されても有効になりません(200として動作します)。
1~2147483647
200
トランスポート名
${clusterName_instanceName_configName}.network-config.transports.transport.tcp.name
トランスポートの名前です。
tcp
受信タイムアウト
${clusterName_instanceName_configName}.network-config.transports.transport.tcp.read-timeout-millis
リクエストのヘッダやPOSTリクエストのBODYの受信が、受信タイムアウトで指定した時間以上途絶えた場合に、データの受信を中止するまでのタイムアウト(単位:ミリ秒)です。アプリケーションでリクエストBODYを受信中に受信タイムアウトが経過すると、アプリケーションにIOExceptionが通知されたり、BODYが取得できなくなります。タイムアウトが発生すると、サーバーログにGRIZZLY5000のメッセージが出力されます。
1~2147483647(ミリ秒)
60000(ミリ秒)
送信タイムアウト
${clusterName_instanceName_configName}.network-config.transports.transport.tcp.write-timeout-millis
レスポンスをクライアントに返却するときのタイムアウトです。アプリケーション処理中にタイムアウトが発生すると、アプリケーションにIOExceptionが通知されたり、不完全な(途中までの)レスポンスがクライアントに送信される場合があります。また、アプリケーション処理終了後にタイムアウトが発生すると、Webコンテナはアプリケーション処理スレッドとは別のスレッドでレスポンスが書き込み可能になるまで待機します。タイムアウトが発生すると、サーバーログにGRIZZLY5001のメッセージが出力されます。
1~2147483647(ミリ秒)
30000(ミリ秒)
関連情報
詳細な説明や関連記事については、以下を参照してください。
内容 | 参照先 |
---|---|
機能説明 | |
チューニング方法 | 運用管理用HTTPリスナーのポート番号の変更については、「6.1 Interstage Java EE 7 DASサービスのチューニング」を参照してください。 |
コマンド | asadminコマンドの以下のサブコマンド |