D よくある質問

この付録では、Oracle HTTP Serverに関してよくある質問とそれに対する回答について説明します。内容は次のとおりです。

該当する場合は、Apache Software Foundationのドキュメントを参照しています。

ノート:

このガイドをPDF版またはハード・コピー形式でご利用いただく場合、HTML形式でのみのご提供となるサードパーティのドキュメントを参照できません。文中で参照されているサードパーティのドキュメントをご利用いただくためには、このガイドのHTML版をご利用のうえ、文中のハイパーリンクをクリックしてください。

アプリケーション固有のエラー・ページはどのように作成しますか

Oracle HTTP Serverには、エラー処理用のデフォルトのコンテンツ・ハンドラが用意されています。ErrorDocumentディレクティブを使用すると、デフォルトをオーバーライドできます。

HTTPおよびHTTPSでは、どのタイプの仮想ホストがサポートされますか

(Apache 2.4が必要)

HTTPの場合、Oracle HTTP Serverでは、名前ベースとIPベースの両方の仮想ホストがサポートされます。名前ベースの仮想ホストは共通のリスニング・アドレス(IPとポートの組合せ)を共有する仮想ホストですが、クライアントにより送信されたHostヘッダーとVirtualHost内のServerNameディレクティブの間の一致に基づいてリクエストをルーティングします。IPベースの仮想ホストは、固有のリスニング・アドレスを持つ仮想ホストです。IPベースの仮想ホストは、リクエストが受信されたアドレスに基づいてリクエストをルーティングします。

HTTPSの場合、Oracle HTTP Serverで使用できるのはIPベースの仮想ホストのみです。これは、名前ベースの仮想ホストの場合、リクエストを処理する仮想ホストを判別するために、リクエストを読み取って調査する必要があるためです。HTTPSが使用されている場合、リクエストを読み取る前にSSLハンドシェイクを実行する必要があります。SSLハンドシェイクを実行するためには、サーバー証明書を提供する必要があります。意味のあるサーバー証明書を提供するには、証明書のホスト名が、クライアントがリクエストしたホスト名に一致する必要があります。これは、仮想ホストごとにサーバー証明書が一意であることを意味します。しかし、サーバーはリクエストを読み取るまで、そのリクエストのルーティング先の仮想ホストを認識できず、また提供するサーバー証明書がわからなければリクエストを適切に読み取ることもできないため、HTTPSでは名前ベースの仮想ホスティングを行うことは不可能です。

異なる言語および文字セット・バージョンのドキュメントを使用できますか

使用できます。Apache HTTP Serverの機能に与えられた汎用名であるMultiviewsを使用すると、リクエストに対するレスポンスで様々なバージョンの言語と文字固有のドキュメントを提供できます。

関連項目:

コンテント・ネゴシエーションの詳細は、次のApache HTTP ServerのドキュメントのMultiviewsオプションを参照してください。

http://httpd.apache.org/docs/current/content-negotiation.html

Oracle HTTP ServerにApache HTTP Serverセキュリティ・パッチを適用できますか

次の理由で、Oracle HTTP ServerにはApache HTTP Serverセキュリティ・パッチを適用できません。

  • OracleではOracle HTTP Serverユーザーにリリースする前に、セキュリティ・パッチをテストして適切に変更しています。

  • Oracleではセキュリティ・パッチのコンポーネントをスタックから削除しているため、多くの場合、OpenSSLアラートなどのApache HTTP Serverアラートは適用できません。

Oracle HTTP Serverに対するセキュリティ関連の最新の修正は、Oracle Critical Patch Update (CPU)を介して実行します。Oracleのクリティカル・パッチ・アップデートおよびセキュリティ・アラートに関するWebページを参照してください。

ノート:

CPUを適用した後、Apache HTTP Serverベースのバージョンがそのまま残っていることがありますが、脆弱性は修正されます。バージョンを確認できるサード・パーティのセキュリティ検出ツールがありますが、これらのツールで脆弱性そのものを確認することはできません。

Oracle HTTP ServerのApache HTTP Serverバージョンをアップグレードできますか

Oracle HTTP Server内のApache HTTP Serverバージョンのみをアップグレードすることはできません。Oracle HTTP ServerのベースとなるApache HTTP Serverの新バージョンが、パッチ更新またはOracle Fusion Middlewareの次期メジャー・リリースかマイナー・リリースの一部として提供されます。

Oracle HTTP Serverからの出力を圧縮できますか

一般に、Oracle HTTP Serverに組み込まれているmod_deflateを使用することをお薦めします。mod_deflateに関する詳細は、http://httpd.apache.org/docs/current/mod/mod_deflate.htmlを参照してください。

ファイアウォールおよびクラスタを介して機能するネームスペースはどのように作成しますか

一般的には、1つの分散Webサイトの全サーバーで、単一のURLネームスペースを使用する必要があります。すべてのサーバーでネームスペースの一部を処理し、処理しないURLのリクエストをそのURLにより近いサーバーにリダイレクトまたはプロキシできます。たとえば、次のようなネームスペースがあるとします。

/app1/login.html
/app1/catalog.html
/app1/dologin.jsp
/app2/orderForm.html
/apps/placeOrder.jsp

最初に、server1にapp1、server2にapp2を置いて、これらのネームスペースを2つのWebサーバーにマップします。server1の構成は次のようになります。

Redirect permanent /app2 http://server2/app2
Alias /app1 /myApps/application1
<Directory /myApps/application1>
  ...
</Directory>

server2の構成は補足的です。

ネームスペースをコンテンツ・タイプ(server1ではHTML、server2ではJSP)別にパーティション化すると決定した場合、サーバー構成を変更してファイルを移動できますが、アプリケーション自体を変更する必要はありません。その結果、server1の構成は次のようになります。

RedirectMatch permanent (.*) \.jsp$ http://server2/$1.jsp
AliasMatch ^/app(.*) \.html$ /myPages/application$1.html
<DirectoryMatch "^/myPages/application\d">
  ...
</DirectoryMatch>

実際のリダイレクションの量は、ハードウェアのロード・バランサ(F5システムのBIG-IPなど)を、URLに基づいてserver1またはserver2にリクエストが送信されるように構成することで、最小限に抑えることが可能です。

Webサイトのセキュリティを強化する方法

Webサイトの保護に関する一般的なガイドラインは、次のとおりです。

  • ISPとWebサーバーの間に市販のファイアウォールを使用します。

  • 切替式のイーサネットを使用して、セキュリティを破られたサーバーにより検出される可能性のある通信量を制限します。Webサーバー・マシンと、データベースやエンタープライズ・アプリケーションを実行中の機密性の高い内部サーバーの間に、追加のファイアウォールを使用します。

  • RPC、Finger、telnetなど、不要なネットワーク・サービスをサーバーから削除します。

  • Webフォームからの入力と、アプリケーションからの出力を常にすべて検証します。エンコーディング、長い入力文字列、印刷不能文字やHTMLタグ、またはJavaScriptタグを含む入力は必ず検証してください。

  • 重要情報を含むCookieの内容は、暗号化します。

  • すべてのシステムとアプリケーション・ソフトウェアのセキュリティ・パッチを頻繁にチェックし、入手後すぐにインストールします。パッチは、OracleまたはOracleサポート担当者からのもののみ受け入れます。

  • 該当する場合は、侵入検出パッケージを使用して、改変されたWebページ、ウィルスおよびrootkitの有無を監視します。可能な場合は、システムの実行可能ファイルとWebのコンテンツを読取り専用ファイル・システムにマウントしてください。

  • アプリケーションに対して侵入テストやその他の適切なセキュリティ・テストを使用することを検討してください。アプリケーションを保護するために適切なカスタムmod_securityルールを使用してWebセキュリティを構成することを検討してください。mod_securityの詳細は、mod_securityモジュールの構成およびmod_securityの使用を参照してください。

  • httpd.confファイルから不要なコンテンツを削除します。「不要コンテンツへのアクセスの削除」を参照してください。

  • Webページをクリックジャック攻撃から保護するための予防措置を講じます。インターネットには多くの使用可能な参考情報があります。クリックジャックの詳細は、Oracle DatabaseおよびFusion Middlewareのセキュリティ脆弱性に関するFAQ (Doc ID 1074055.1)のセキュリティのベスト・プラクティスに関する項を参照してください。

REDIRECT_ERROR_NOTESが、「ファイルが見つかりません」というエラーに設定されていないのはなぜですか

Apache HTTP Serverとの互換性によって、この条件でのCGIおよび他のアプリケーションで、この情報を使用可能にしていないため、Oracle HTTP Serverでは、REDIRECT_ERROR_NOTES CGI環境変数は「ファイルが見つかりません」というエラーに設定されていません。

Webサーバー・ベンダーおよびバージョンに関する情報はどのように隠すことができますか

この情報をWebサーバーで生成されたレスポンスから削除するには、ServerSignature Offを指定します。Oracle HTTP ServerがWebサーバー・レスポンス・ヘッダーを生成したときにWebサーバー・ソフトウェアを非表示にするには、ServerTokens Custom some-server-stringを指定します。(バックエンド・サーバーがレスポンスを生成するときは、プロキシ・メカニズムに応じてバックエンド・サーバーからサーバー・レスポンス・ヘッダーが生成される場合があります。)

ノート:

ServerTokens Custom some-server-stringは、Oracle HTTP Server 10gのServerHeader Off設定の置換文字列です。

apachectlまたは他のコマンド行ツールを使用してOracle HTTP Serverを起動できますか

Oracle HTTP Server のプロセス管理はノード・マネージャによって処理されます。startComponentコマンドを使用して、WLSTまたはFusion Middleware Controlを直接使用せずに、Oracle HTTP Serverを起動することができます。「コマンド行を使用したOracle HTTP Serverインスタンスの起動」を参照してください。

ポート80でリスニングするOracle HTTP Serverをどのように構成しますか

デフォルトでは、Oracle HTTP Serverは、UNIXでの予約済の範囲内にあるポート(通常1024未満)にバインドできません。特権ポートでのOracle HTTP Serverインスタンスの起動(UNIXのみ)の手順に従って、Oracle HTTP Serverが予約済の範囲内にあるポート(たとえば、デフォルトのポート80)でリスニングするようにできます。

Oracle HTTP ServerでSSLを使用してリクエストをどのように停止しますか

mod_wl_ohsモジュールがWebLogic Serverにリクエストを転送する、Oracle HTTP Serverの前あるいはその中で、SSLを使用してリクエストを停止できます。リクエストがOracle HTTP Serverに届く前にSSLを停止するか、リクエストがサーバーの中にある時に停止するかは、トポロジによります。「ロード・バランサでのSSLの停止」および「Oracle HTTP ServerでSSLを停止」を参照してください。

Oracle HTTP ServerでエンドツーエンドSSLをどのように構成しますか

Secure Sockets Layer (SSL)のサポートは、Oracle WebLogic Serverプラグインにより提供されます。SSLプロトコルを使用することで、プラグインとOracle WebLogic Serverとの間の接続を保護できます。SSLプロトコルによって、プラグインとWebLogic Serverとの間で渡されるデータの機密性と整合性が保持されます。SSLライブラリの設定およびWebサーバーとOracle WebLogic Server間の一方向または双方向のSSL通信の設定については、『Oracle WebLogic Serverプロキシ・プラグインの使用』プラグインを使用したSSLの使用に関する項を参照してください。

SSLをOracle HTTP Serverでは構成し、Oracle WebLogic Serverでは構成しない場合、Oracle HTTP Serverから送信されるリクエストに対するSSLを停止できます。このシナリオの構成の詳細は、Oracle HTTP ServerでのSSLの停止を参照してください。

Oracle HTTP ServerはOracle WebLogic Serverのフロントエンドになれますか

Oracle HTTP Serverは、Oracle Fusion MiddlewareのWebサーバー・コンポーネントです。サーバーはWebLogic Management Frameworkを活用して、Oracle HTTP Server、Oracle WebLogic Serverおよびその他のFusion Middlewareスタックを管理するための簡単で一貫性のある分散環境を提供します。これは、組込みのOracle WebLogic Serverプロキシ・プラグイン(mod_wl_ohsモジュール)を使用し、静的コンテンツを内部からホストすることによって、HTTPのフロントエンドとして機能して、動的コンテンツのリクエストをWebLogic管理対象サーバーにルーティングします。

Oracle HTTP Serverをインストールできるトポロジの詳細は、Oracle HTTP Serverのトポロジを参照してください。

Oracle WebLogic Serverドメインとスタンドアロン・ドメインの違い

Oracle HTTP Serverはスタンドアロン、Full-JRFまたはRestricted-JRFドメインのいずれかにインストールできます。スタンドアロン・ドメインはOracle HTTP Serverなどのシステム・コンポーネント用のコンテナです。これはオーバーヘッドが最小のため、DMZ環境に理想的です。スタンドアロン・ドメインにはOracle WebLogic Serverドメインに類似したディレクトリ構造がありますが、これには管理サーバー、管理対象サーバーまたは管理サポートは含まれていません。スタンドアロン・ドメインには、同一タイプのシステム・コンポーネント(Oracle HTTP Serverなど)、またはタイプの混在したシステム・コンポーネントの1つ以上のインスタンスが含まれます。

WebLogic ServerドメインではすべてのWebLogic Management Frameworkツールがサポートされています。Oracle WebLogic ServerドメインはFull-JRFまたはRestricted JRFのいずれかです。Full-JRFモードのWebLogic Serverドメインには、WebLogic管理サーバー、0台以上のWebLogic管理対象サーバーおよび0個以上のシステム・コンポーネント・インスタンス(Oracle HTTP Serverインスタンスなど)が含まれます。このタイプのドメインは、システム全体に存在するFusion Middleware ControlおよびWebLogic Management Frameworkを介して拡張管理機能を提供します。WebLogic Serverドメインは、複数の物理マシンにまたがって設定でき、管理サーバーによって一元管理されます。これらのプロパティのために、WebLogic Serverドメインは、使用しているシステムのコンポーネントとJava EEコンポーネント間の最高の統合を提供します。

Restricted-JRFドメインの目的は、WebLogicサーバー・ドメインを使用してOracle HTTP Serverの管理を単純化することです。Oracle WebLogic ServerのRestricted-JRFドメインは、外部データベースへの接続が必要ない点を除き、Full-JRFドメインと似ています。Fusion MiddleWare ControlおよびWLSTを介するOracle HTTP Server機能のすべては引き続き使用可能です。

これらの各ドメインの詳細は、ドメイン・タイプを参照してください。

Oracle HTTP Serverはレスポンス・データをキャッシュできますか

Oracle HTTP Serverはレスポンス・データをキャッシュするApache mod_cacheおよびmod_cache_diskモジュールを含むようになりました。

mod_cacheおよびmod_cache_diskでの詳細は、Apacheドキュメントのmod_cacheに関する項を参照してください。

http://httpd.apache.org/docs/2.4/mod/mod_cache.html

仮想サーバー固有のアクセス・ログをどのように構成しますか

各VirtualHostディレクティブ内で、Apache LogFormatおよびCustomLogディレクティブを使用して、仮想ホスト固有のアクセス・ログ形式およびログ・ファイルを構成できます。「LogFormat」および「CustomLog」を参照してください。

Fusion Middleware Controlを使用してOracle HTTP ServerのSSLを有効にする方法

Fusion Middleware Controlを使用してOracle HTTP ServerのSSLを有効にできます。

この項で説明するステップは、Oracle HTTP Server - バージョン12.2.1.0.0以降に適用できます。

Fusion Middleware Controlを使用してOracle HTTP ServerのSSLを有効にするには、次のステップを完了します。

ノード・マネージャおよび管理サーバーの起動

  1. コロケートされたORACLE_HOMEでノード・マネージャを起動します。
    $ORACLE_HOME/user_projects/domains/bin/startNodeManager.sh
  2. コロケートされたORACLE_HOMEで管理サーバーを起動します。
    $ORACLE_HOME/user_projects/domains/bin/startWeblogic.sh
  3. Weblogicのユーザー名およびパスワードでFusion Middleware Controlにログインします。
    たとえば、http://host.domain:7001/emなどです。

キーストアの作成

  1. Fusion Middleware Controlにログインします。
  2. 「ドメイン」に移動し、「セキュリティ」をクリックし、「キーストア」をクリックします。
    「キーストア」ページが表示されます。
  3. 「キーストアの作成」をクリックします。
    「キーストアの作成」ダイアログ・ボックスが表示されます。
  4. このダイアログ・ボックスで、次のデータを入力します。
    • キーストア名: 一意の名前を入力します。たとえば、Testと入力します。
    • 保護タイプ: 「ポリシー」を選択します。
    新しいキーストアが、名前_Test、つまりohs1_Testで作成されます。

    キーストアが作成されたら、新しいキーストアohs1_Testを選択し、「管理」をクリックしてその他のすべてのステップを実行します

キー・ペアの生成

関連するキー・ペアとともに証明書を生成するには:
  1. Fusion Middleware Controlにログインします。
  2. ナビゲーション・ペインから、目的のドメインを見つけます。
  3. 「セキュリティ」「キーストア」に移動します。
    「キーストア」ページが表示されます。
  4. キーストアがその中に存在するストライプを展開します。キーストアに対応する行を選択します。
  5. 「管理」をクリックします。
    「証明書の管理」ページが表示されます。
  6. 「キー・ペアの生成」をクリックします。
    「キー・ペアの生成」ダイアログ・ボックスが表示されます。
  7. 詳細を入力して、「OK」をクリックします。
    新しい証明書が証明書の一覧に表示されます。証明書の別名をクリックすることで、証明書の詳細を表示できます。
生成されたキー・ペアはCA署名付き証明書でラップされています。この証明書をSSLなどの信頼を確立する必要のある場所で使用するには、アプリケーションはトラスト・ストアとしてドメイン・トラスト・ストアを使用するか、もしくは証明書をカスタムのアプリケーション固有のトラスト・ストアにインポートする必要があります。

証明書に対するCSRの生成 

証明書または信頼できる証明書用のCSRを生成するには:
  1. Fusion Middleware Controlにログインします。
  2. ナビゲーション・ペインから、目的のドメインを見つけます。
  3. 「セキュリティ」「キーストア」の順に移動します。
    「キーストア」ページが表示されます。
  4. キーストアがその中に存在するストライプを展開します。キーストアに対応する行を選択します。
  5. 「管理」をクリックします。
    「証明書の管理」ページが表示されます。 
  6. 新しいキー・ペアに対応する行を選択して、「CSRの生成」をクリックします。
    「CSRの生成」ダイアログが表示されます。
  7. CSR全体をコピーしてテキスト・ファイルに貼り付け、「閉じる」をクリックします。
    または、「CSRのエクスポート」をクリックして、自動的にCSRをファイルに保存できます。
生成された証明書リクエストを認証局(CA)に送信すると、CAから署名付きの証明書が返送されます。

信頼できる証明書のインポート

パスワードで保護されたキーストアに証明書をインポートする手順は次のとおりです。
  1. Fusion Middleware Controlにログインします。
  2. ナビゲーション・ペインからOracle HTTP Serverを見つけます。
  3. 「セキュリティ」「キーストア」の順に移動します。
    「キーストア」ページが表示されます。
  4. キーストアがその中に存在するストライプを展開します。CSRが生成されたキーストアを選択します。
  5. 「管理」をクリックします。
    「証明書の管理」ページが表示されます。 
  6. 「インポート」をクリックします。
    「証明書のインポート」ダイアログが表示されます。
  7. 「証明書タイプ」「信頼できる証明書」を選択します。
  8. 「別名」で、「別名」の名前を入力します。
  9. 「証明書ソース」で、「証明書文字列をここに貼り付けます」テキスト・ボックスに信頼できる証明書の内容を貼り付けるか、信頼できる証明書ファイルを選択します。
  10. 「OK」をクリックします。
    チェーン内のその他の信頼できるCA証明書に対してこれらのステップを繰り返します。
    インポートされた信頼できる証明書が、証明書の一覧に表示されます。

WebLogicドメインへの信頼できる証明書のインポート

ルートCA証明書およびその他の信頼できるCA証明書を、信頼できるキーストアの下のWebLogic「system」ストライプにインポートする必要もあります。
  1. Fusion Middleware Controlにログインします。
  2. ナビゲーション・ペインから、WebLogicドメインを探します。
  3. 「セキュリティ」「キーストア」の順に移動します。
    「キーストア」ページが表示されます。
  4. キーストアがその中に存在するストライプを展開します。CSRが生成されたキーストアを選択します。
  5. 「管理」をクリックします。
    「証明書の管理」ページが表示されます。 
  6. 「インポート」をクリックします。
    「証明書のインポート」ダイアログが表示されます。
  7. 「証明書タイプ」「信頼できる証明書」を選択します。
  8. 「別名」で、「別名」の名前を入力します。
  9. 「証明書ソース」で、「証明書文字列をここに貼り付けます」テキスト・ボックスに信頼できる証明書の内容を貼り付けるか、信頼できる証明書ファイルを選択します。
  10. 「OK」をクリックします。
    チェーン内のその他の信頼できるCA証明書に対してこれらのステップを繰り返します。
    インポートされた信頼できる証明書が、証明書の一覧に表示されます。

このステップを行わない場合、キーストアをウォレットにエクスポートしようとすると、次のエラー・メッセージが表示され失敗します。

エラー「キーストアのウォレットへのエクスポートに失敗しました。エラー・メッセージ: null」(キーストアのウォレットへのエクスポートの試行中)

ノート: 2140257.1を参照してください

ユーザー証明書のインポート

  1. Fusion Middleware Controlにログインします。
  2. ナビゲーション・ペインからOracle HTTP Serverを見つけます。
  3. 「セキュリティ」「キーストア」の順に移動します。
    「キーストア」ページが表示されます。
  4. キーストアがその中に存在するストライプを展開します。CSRが生成されたキーストアを選択します。
  5. 「管理」をクリックします。
    「証明書の管理」ページが表示されます。 
  6. 「インポート」をクリックします。
    「証明書のインポート」ダイアログが表示されます。
  7. 「証明書タイプ」「証明書」を選択します。
  8. 「別名」で、「別名」の名前を入力します。
  9. 「証明書ソース」で、「証明書文字列をここに貼り付けます」テキスト・ボックスにユーザー証明書の内容を貼り付けるか、ユーザー証明書ファイルを選択します。
  10. 「OK」をクリックします。
    インポートされたユーザー証明書が、証明書の一覧に表示されます。

キーストアのウォレットへのエクスポート

  1. Fusion Middleware Controlにログインします。
  2. ナビゲーション・ペインからOracle HTTP Serverを見つけます。
  3. 「セキュリティ」「キーストア」の順に移動します。
    「キーストア」ページが表示されます。
  4. キーストアがその中に存在するストライプを展開します。CSRが生成されたキーストアを選択します。
  5. 「管理」をクリックします。
    「証明書の管理」ページが表示されます。 
  6. 「インポート」をクリックします。
    「証明書のインポート」ダイアログが表示されます。
  7. 「キーストアをウォレットにエクスポート」をクリックします。
    パスワードが不要な自動ログイン・ウォレット、cwallet.ssoを取得します。この自動ログイン可能なウォレットは、PKCS#12ウォレット(ewallet.p12)とも関連付けられます。

SSLの有効化

  1. Oracle HTTP Serverのホームページに移動します。
  2. 「Oracle HTTP Server」メニューから「管理」を選択します。
  3. 「管理」メニューから「仮想ホスト」を選択します。
  4. 表内の既存の仮想ホストを強調表示します
  5. 「構成」をクリックします。
  6. 「SSL構成」を選択します。
  7. 「SSLの有効化」ボックスを選択します。
  8. ドロップダウン・リストからウォレットを選択します。
    ここではテスト・ウォレットへのパスを選択します。
  9. 「OK」をクリックして変更を保存します。
  10. 「Oracle HTTP Server」「コントロール」「再起動」にナビゲートして、Oracle HTTP Serverインスタンスを再起動します。
  11. ブラウザ・セッションを開き、SSLを有効にしたポート番号に接続します。