Oracle HTTP Server スタンドアロン・デプロイの管理Apache 2.0ベース 10g(10.1.3.1.0) B31848-02 |
|
この章では、Oracle HTTP ServerでのSSLの有効化および構成について説明します。
内容は、次のとおりです。
Secure Sockets Layer(SSL)は、インターネット上で安全にメッセージを送信するように設計されている暗号化通信プロトコルです。SSLは、アプリケーション層上のOracle HTTP ServerとTCP/IP層との間に位置し、クライアントによりセキュアな接続が行われたときに透過的に暗号化と復号化を処理します。
SSLの一般的な用途の1つは、ブラウザとWebサーバー間のWeb HTTP通信を保護することです。この場合、保護されていないHTTPの使用は排除されません。保護されたバージョンは、単純にHTTP over SSL(HTTPS)と呼ばれます。違いは、HTTPSではURLスキームにhttp://
ではなくhttps://
を使用することと、デフォルトの通信ポートが4443(UNIX)または443(Windows)であることです。
mod_ossl
は、サーバーがSSLを使用できるようにするOracle HTTP Serverへのプラグインです。
Oracle Application Serverのインストール時は、デフォルトでSSLが有効化されています。SSLを構成するには、次のタスクを実行します。
SSLについてOracle HTTP Serverを構成するには、サーバー用の証明書が含まれるウォレットが必要です。ウォレットには、証明書リクエスト、証明書および秘密鍵など、資格証明が格納されます。
Oracle HTTP Serverによって自動的にインストールされるデフォルトのウォレットは、テスト専用のものです。本番環境のサーバー用に、実際のウォレットを作成する必要があります。デフォルトのウォレットは、ORACLE_HOME
/Apache/Apache/conf/ssl.wlt/default
にあります。新規ウォレットをその場所に置いてもかまいません。また、実際のウォレットの場所を指すようにORACLE_HOME
/Apache/Apache/conf/ssl.conf
のSSLWalletディレクティブを変更することもできます。
必要に応じて、mod_ossl
のディレクティブを使用して、構成をさらにカスタマイズできます。
クライアント認証を有効にするには、次のようにします。
この項では、このリリースでサポートされるSSL機能について説明します。
この機能により、ステップアップ、Server Gated Cryptography(SGC)またはグローバル・サーバーIDなど様々に称されるSSLプロトコル機能のサポートが追加されます。ステップアップは、古くて暗号化強度が低いブラウザをステップアップして、512ビット超の公開鍵および64ビット超のバルク暗号鍵をSSLプロトコルで使用できるようにする機能です。つまり、512ビット超の公開鍵や、ステップアップ・デジタル著作権が含まれるサーバーのX.509証明書がOracle Application Serverで使用できます。このような証明書は、証明書そのものには通常1024ビットの証明書が含まれますが、しばしば128ビットの証明書と呼ばれます。Verisign社のSecure Site Proは、Oracle Application Serverで使用できるこのような証明書の一例です。
グローバル・サーバーID機能は、デフォルトで提供されます。構成の必要はありません。
公開鍵暗号規格#11(略してPKCS #11)は、ハードウェア・セキュリティ・モジュールをシステムで使用する方法の概要を定めた公開鍵暗号仕様です。ハードウェア・セキュリティ・モジュールとは、基本的に、暗号機能(暗号化/復号化)が実行され、暗号鍵が格納されるボックスのことです。
Oracle HTTP Serverでは、nCipherのSSL専用ハードウェアを使用できます。nCipherは、認定サード・パーティのアクセラレータで、SSLで使用されるPKI暗号化のパフォーマンスを向上させます。
mod_ossl
は、Oracle Application ServerへのHTTPSプロトコル接続を標準サポートします。SSL経由でOracle提供の暗号化メカニズムを使用し、Oracle HTTP Serverとブラウザ・クライアント間を安全に接続できるようにします。このモジュールは、デジタル証明書技術を使用したインターネット上での認証にも使用できます。このモジュールはSSLバージョン3.0をサポートし、次の機能を提供します。
次のmod_ssl
のディレクティブは、mod_ossl
ではサポートされていません。
SSLRandomSeed
SSLCertificateFile
SSLCertificateKeyFile
SSLCertificateChainFile
SSLCACertificateFile
SSLCACertificatePath
SSLVerifyDepth
Oracle HTTP Serverに対してSSLを構成するには、使用するmod_ossl
のディレクティブをhttpd.conf
ファイルに入力します。
次の項で、次のディレクティブについて説明します。
SSLアクセラレータが使用されるかどうかを指定します。現在サポートされているのは、nFastカードのみです。
カテゴリ | 値 |
---|---|
有効値 |
|
構文 |
|
デフォルト |
|
コンテキスト |
サーバー構成 |
証明書を発行したCA(認証局)からの証明書失効リスト(CRL)をまとめるファイルを指定します。このリストは、クライアント認証に使用されます。このファイルは、PEMでエンコードされた様々なCRLファイルを優先順位の順に連結したものです。CRLファイルは単一のユーザーが発行する必要があります。複数のSSLCARevocationFileエントリが存在できます。SSLCARevocationFileで指定されたファイルはハッシュしないでください。SSLCARevocationPathおよびSSLCARevocationFileディレクティブは、同時に使用できません。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
|
デフォルト |
なし |
コンテキスト |
サーバー構成、仮想ホスト |
PEMでエンコードされている証明書失効リスト(CRL)が格納されるディレクトリを指定します。CRLは、証明書の発行元のCA(認証局)から届きます。CRLのいずれかに記載されている証明書を使用してクライアントが自身を認証しようとすると、証明書は取り消され、そのクライアントはサーバーに対して自身を認証できなくなります。SSLCARevocationPathディレクトリのCRLファイルをハッシュする必要があります。SSLCARevocationPathエントリは1つのみ存在できます。SSLCARevocationPathおよびSSLCARevocationFileディレクティブは、同時に使用できません。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
|
デフォルト |
なし |
コンテキスト |
サーバー構成、仮想ホスト |
クライアントがSSLハンドシェイク時に使用できるSSL 暗号スイートを指定します。このディレクティブでは、コロンで区切られた暗号指定文字列を使用して暗号スイートを識別します。表8-2に、必要な暗号スイートを記述するためにこの文字列で使用できるタグを示します。
タグと接頭辞を組み合せて、暗号指定文字列が作成されます。
カテゴリ | 値 |
---|---|
有効値 |
|
例 |
この例では、低強度暗号とDiffie-Hellman鍵交換アルゴリズムを使用する暗号を除くすべての暗号が指定されています。 |
構文 |
|
デフォルト |
|
コンテキスト |
サーバー構成、仮想ホスト、ディレクトリ |
SSLプロトコル・エンジンの使用を切り替えます。通常は<VirtualHost>
セクションの中で使用し、特定の仮想ホストに対してSSLを有効にします。デフォルトでは、SSLプロトコル・エンジンは、メイン・サーバーとすべての構成済仮想ホストの両方で無効にされています。例8-1に、SSLEngineディレクティブの使用例を示します。デフォルトのSSLは、4443(UNIX)および443(Windows)です。
<VirtualHost_dafault_:4443> SSLEngine on ... </VirtualHost>
カテゴリ | 値 |
---|---|
構文 |
|
デフォルト |
|
コンテキスト |
サーバー構成、仮想ホスト |
SSLエンジンのログ・ファイルが書き込まれる場所を指定します(エラー・メッセージは、ErrorLogディレクティブにより指定されたOracle HTTP Server標準ログ・ファイルにも重複して書き込まれます)。
このファイルは、シンボリック・リンク攻撃に使用されないように、rootのみが書き込める場所に配置します。このファイル名の先頭にスラッシュ(/)がない場合は、ServerRootへの相対ファイル名とみなされます。ファイル名の先頭に縦線(|)がある場合は、縦線に続く文字列が、信頼できるパイプを確立できる実行可能プログラムへのパスと想定されます。
このディレクティブは、1つの仮想サーバー構成につき1回のみ使用できます。
カテゴリ | 値 |
---|---|
構文 |
|
デフォルト |
なし |
コンテキスト |
サーバー構成、仮想ホスト |
SSLエンジン・ログ・ファイルの冗長性レベルを指定します。
Oracle HTTP Serverプロセス間で同期化する必要がある操作の、SSLエンジンによる相互排他を行うために使用するセマフォ(ロック)のタイプです。
ディレクトリ単位で様々なランタイム・オプションを制御します。一般に、1つのディレクトリに複数のオプションが適用される場合は、より包括的なオプションが適用されます(オプションはマージされません)。ただし、SSLOptions
ディレクティブのすべてのオプションの前にプラス(+)またはマイナス(-)符号が付いている場合は、オプションがマージされます。プラスが前に付いているオプションは、現在有効なオプションに追加され、マイナスが前に付いているオプションは、現在有効なオプションから除外されます。
カテゴリ | 値 |
---|---|
有効値 |
|
|
|
構文 |
|
デフォルト |
なし |
コンテキスト |
サーバー構成、仮想ホスト、ディレクトリ |
ウォレット・アクセス用のパスフレーズ・ダイアログのタイプ。mod_ossl
では、ウォレットにアクセスするために管理者にパスフレーズの入力が要求されます。
カテゴリ | 値 |
---|---|
有効値 |
|
構文 |
|
例 |
|
デフォルト |
|
コンテキスト |
サーバー構成 |
mod_ossl
がサーバー環境を設定するときに使用するSSLプロトコルを指定します。クライアントは、指定されたプロトコルのいずれかでのみ接続できます。
カテゴリ | 値 |
---|---|
有効値 |
SSLv2、SSLv3、TLSv1、ALL |
例 |
SSLバージョン3.0のみを指定するには、このディレクティブを次のように設定します。
|
構文 |
|
デフォルト |
|
コンテキスト |
サーバー構成、仮想ホスト |
任意の複合ブール式がTRUEでないかぎり、アクセスを拒否します。
カテゴリ | 値 |
---|---|
構文 |
|
デフォルト |
なし |
コンテキスト |
ディレクトリ |
このexpressionは、次の構文と一致する必要があります(BNF構文表記として示してあります)。
expr ::= "true" | "false"
"!" expr
expr "&&" expr
expr "||" expr
"(" expr ")"
comp ::=word "==" word | word "eq" word
word "!=" word |word "ne" word
word "<" word |word "lt" word
word "<=" word |word "le" word
word ">" word |word "gt" word
word ">=" word |word "ge" word
word "=~" regex
word "!~" regex
wordlist ::= word
wordlist "," word
word ::= digit
cstring
variable
function
digit ::= [0-9]+
cstring ::= "..."
variable ::= "%{varname}"
表8-3と表8-4に標準変数とSSL変数を示します。これらの値がvarnameの有効値です。
function ::= funcname "(" funcargs ")"
funcname
には、次の関数を使用できます。
file(filename)
file関数は文字列引数(ファイル名)を1つ取り、そのファイルの内容に拡張します。これは、正規表現に照らしてファイルの内容を評価する場合に役立ちます。
表8-3には、SSLRequireのvarnameの標準変数を示します。
表8-4には、SSLRequireのvarnameのSSL変数を示します。
SSLを使用していないクライアントに対してアクセスを拒否します。構成エラーにより、セキュリティが脆弱になる可能性があるSSL対応の仮想ホストまたはディレクトリの完全保護に役立つディレクティブです。
カテゴリ | 値 |
---|---|
構文 |
|
デフォルト |
なし |
コンテキスト |
ディレクトリ |
グローバル・セッションまたはプロセス間セッションのセッション・キャッシュ・ストレージ・タイプを指定します。キャッシュは、リクエストのパラレル処理を高速化するオプションの方法を提供します。
セッション・キャッシュ内でSSLセッションの有効期限が満了になるまでの秒数を指定します。
カテゴリ | 値 |
---|---|
構文 |
|
デフォルト |
300 |
コンテキスト |
サーバー構成 |
接続時にクライアントが証明書を提示する必要があるかどうかを指定します。
カテゴリ | 値 |
---|---|
有効値 |
|
構文 |
|
デフォルト |
なし |
コンテキスト |
サーバー構成、仮想ホスト |
WRLを使用してウォレットの位置を指定します。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
その他、Oracle SSL製品で使用可能なwrlの値も使用できます。 |
デフォルト |
なし |
コンテキスト |
サーバー構成、仮想ホスト |
同一コンテキスト内に指定されているウォレットへのアクセスに必要なクリアテキスト・ウォレット・パスワードを指定します。
カテゴリ | 値 |
---|---|
構文 |
パスワードが不要の場合は、このディレクティブを設定しないでください。 注意: Oracle Wallet Managerの自動ログオン機能を使用して作成されたウォレットが使用される場合、ウォレットにはパスワードが不要なため、このディレクティブは設定しないでください。 |
デフォルト |
なし |
コンテキスト |
サーバー構成、仮想ホスト |
注意
|
iasobf
ユーティリティを使用すると、不明瞭化されたパスワードをウォレットのクリアテキスト・パスワードから生成できます。
自動ログオンを使用可能にして作成されたOracleウォレット(SSOウォレット)を使用している場合は、このユーティリティを使用する必要はありません。ただし、パスワード付きの標準のウォレットを使用する必要がある場合は、ORACLE_HOME
/Apache/Apache/bin
にあるパスワード不明瞭化ツールiasobf
を使用して、クリアテキストのパスワードから不明瞭化されたウォレット・パスワードを生成することをお薦めします。
不明瞭化されたウォレット・パスワードを生成するためのコマンド構文は、次のとおりです。
iasobf -p password
不明瞭化されたパスワードは端末に出力されます。iasobf
には、httpdプロセスのオペレーティング・システム・ユーザーが必要です。したがって、UNIXの場合はroot
引数、Windowsの場合はsystem
引数を使用します。たとえば、UNIXでは、コマンドはiasobf -password root
となります。
次のディレクティブは、mod_proxyサポート専用です。
プロキシ・キャッシュを使用するかどうかを指定します。プロキシは、SSLサーバーが使用するのと同じセッションを使用します。
カテゴリ | 値 |
---|---|
構文 |
|
デフォルト |
|
コンテキスト |
サーバー構成、仮想ホスト |
プロキシ・サーバーの暗号スイートを指定します。
カテゴリ | 値 |
---|---|
構文 |
|
デフォルト |
|
コンテキスト |
サーバー構成、仮想ホスト |
プロキシ・サーバーのSSLプロトコルを制御します。
カテゴリ | 値 |
---|---|
構文 |
|
デフォルト |
|
コンテキスト |
サーバー構成、仮想ホスト |
プロキシ接続のオープン時に使用する証明書を含む、ウォレットの位置を指定します。
カテゴリ | 値 |
---|---|
構文 |
|
デフォルト |
|
コンテキスト |
サーバー構成、仮想ホスト |
プロキシのウォレット・パスワードを指定します。
カテゴリ | 値 |
---|---|
構文 |
|
デフォルト |
|
コンテキスト |
サーバー構成、仮想ホスト |
|
Copyright © 2007 Oracle Corporation. All Rights Reserved. |
|