Cosminexus V9 アプリケーションサーバ Cosminexus HTTP Server

[目次][用語][索引][前へ][次へ]

5.1.3 SSLセション管理

現在多くのWebブラウザは,SSLセションを用いてハンドシェイクを簡略化する機能を実装しています。ブラウザ側のこの機能とWebサーバ側のSSLセション管理機能を用いることで,SSLによる通信性能の向上を図れます。

UNIX版とWindows版では,SSLセションを管理する方法が異なります。UNIX版では,SSLセションを管理するサーバ(gcacheサーバといいます)を使用します。gcacheサーバでは,指定したポートまたはファイルを通じて,SSLセションID,有効期限およびそのセションについての情報を受信して,管理します。gcacheサーバによって,HTTP Serverのリクエスト処理プロセス間でSSLセションIDなどのデータを共有できます。Windows版では,Webサーバの構造上,gcacheサーバを使用しないでSSLセションを管理します。

<この項の構成>
(1) UNIX版の場合
(2) Windows版の場合

(1) UNIX版の場合

(a) gcacheサーバの起動・停止

SSLが有効な状態にし,かつgcacheサーバを起動するために必要なディレクティブを指定してHTTP Serverを起動すると,gcacheサーバが起動されます。SSLが有効な状態とは,SSLEnableディレクティブを指定しているかまたはSSLDisableディレクティブを指定していないホスト(バーチャルホストを含めて)がある状態のことです。

gcacheサーバを起動するには,次のディレクティブの指定が必要です。

また,Webサーバを停止すると,同時にgcacheサーバも停止します。Webサーバを再起動すると gcacheサーバはいったん停止し,その後,起動します。

(b) セション管理領域

SSLのセションを確立すると,そのセション情報はgcacheサーバとWebサーバプロセス内にキャッシュされます。gcacheサーバのキャッシュ領域のサイズはSSLSessionCacheSizeディレクティブ,Webサーバプロセス内キャッシュはSSLSessionCacheSizePerChildディレクティブで指定できます。

SSLSessionCacheSizeディレクティブに0を指定した場合,SSLセション管理は機能しません。

SSLセションの有効時間はSSLSessionCacheTimeoutディレクティブの指定値かまたはキャッシュサイズがSSLSessionCacheSizeディレクティブで指定したキャッシュサイズに達するまでの時間のどちらか短い方になります。

キャッシュサイズがSSLSessionCacheSizeディレクティブで指定したキャッシュサイズに達した場合,新しいセション情報を保持するメモリ領域が確保できるまで,古いセション情報から順に削除されます。

キャッシュされたセション情報は次回以降のセション確立の際に再利用することで,SSLのハンドシェイクを簡略化します。

(c) 注意事項
  1. セションIDなどのデータは,Webサーバまたはgcacheサーバが停止するとクリアされます。
  2. gcacheサーバが異常停止した場合には,SSLセションは維持できません。ただし,Webサービスは停止しません。
  3. セキュリティの関係上,Webサーバ間でgcacheサーバの共用はできません。そのため,Webサーバ間のSSLセション共有はできません。
  4. SSLSessionCacheSizeディレクティブに0を指定した場合,gcacheサーバは起動しません。
  5. セションキャッシュ領域はバーチャルホストごとに分かれません。

(2) Windows版の場合

(a) セション管理領域

SSLのセションを確立すると,そのセション情報はWebサーバプロセス内にキャッシュされます。このキャッシュ領域のサイズはSSLSessionCacheSizeディレクティブで指定できます。SSLSessionCacheSizeディレクティブに0を指定した場合,SSLセション管理は機能しません。

SSLセションの有効時間はSSLSessionCacheTimeoutディレクティブの指定値かまたはキャッシュサイズがSSLSessionCacheSizeディレクティブで指定したキャッシュサイズに達するまでの時間のどちらか短い方になります。

キャッシュされたセション情報は次回以降のセション確立の際に再利用することで,SSLのハンドシェイクを簡略化します。

(b) 注意事項