H Oracle HTTP Serverのモジュール・ディレクティブ
モジュールは、Oracle HTTP Serverの基本機能を拡張し、Oracle HTTP Serverとその他のOracle Fusion Middlewareコンポーネントとの統合をサポートします。Oracle HTTP Serverは、オラクル社が開発したモジュールまたは「プラグイン」とApacheやサード・パーティ開発のモジュールの両方を使用します。オラクル社が開発したモジュールには、Oracle HTTP Serverでサポートしている一連のディレクティブがあります。
この付録では、オラクル社が開発したモジュールで使用できるディレクティブについて説明します。
- mod_wl_ohsモジュール
Oracle HTTP Serverの主要機能であるmod_wl_ohs
モジュールにより、Oracle HTTP ServerからOracle WebLogic Serverへのリクエストをプロキシ処理できます。このモジュールは一般的にOracle WebLogic Serverプロキシ・プラグインと呼ばれます。 - mod_certheadersモジュール
mod_certheaders
モジュールでは、2つのディレクティブ、つまりAddCertHeader
およびSimulateHttps
を使用してリバース・プロキシを有効にします。 - mod_ossl Module
mod_ossl
モジュールは、Oracle HTTP Serverに対して厳密な暗号化を有効にします。これは、SSLCARevocationFile
、SSLCipherSuite
、SSLEngine
などのディレクティブのセットを受け付けます。
mod_wl_ohsモジュール
Oracle HTTP Serverの主要機能であるmod_wl_ohs
モジュールにより、Oracle HTTP ServerからOracle WebLogic Serverへのリクエストをプロキシ処理できます。このモジュールは一般的にOracle WebLogic Serverプロキシ・プラグインと呼ばれます。
mod_wl_ohsモジュールによって、Oracle WebLogic Serverが動的機能を必要とするリクエストを処理可能となり、Oracle HTTPサーバーのインストールが拡張されます。すなわち、通常、HTTPサーバーがHTMLページのような静的なページを提供する場合にはプラグインを使用しますが、Oracle WebLogic ServerはHTTP ServletsやJavaサーバー・ページ(JSP)のような動的なページを提供します。このモジュールのディレクティブの詳細は、『Oracle WebLogic Serverプロキシ・プラグインの使用』のWeb Serverプラグインのパラメータに関する項を参照してください。
mod_certheadersモジュール
mod_certheaders
モジュールでは、2つのディレクティブ、つまりAddCertHeader
およびSimulateHttps
を使用してリバース・プロキシを有効にします。
この項では、mod_certheadersディレクティブについて説明します。
AddCertHeaderディレクティブ
CGI環境変数に変換する必要があるヘッダーを指定します。これは、AddCertHeader
ディレクティブを使用して実行できます。このディレクティブは単一の引数を取ります。この引数は、受信リクエストのHTTPヘッダーから移入する必要があるCGI環境変数です。たとえば、SSL_CLIENT_CERT CGI環境変数を移入します。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
|
デフォルト |
なし |
親トピック: mod_certheadersモジュール
SimulateHttpsディレクティブ
mod_certheadersを使用すると、特定のリクエストがHTTP経由で受信された場合でも、HTTPS経由で受信されたかのようにそれらのリクエストを扱うように、Oracle HTTP Serverに指示することができます。これは、Oracle HTTP Serverがリバース・プロキシまたはロード・バランサのフロントエンドになっている場合に役立ちます。リバース・プロキシまたはロード・バランサは、SSLリクエストの終端点の機能を果たし、HTTPS経由でOracle HTTP Serverにリクエストを転送します。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
|
デフォルト |
|
親トピック: mod_certheadersモジュール
mod_osslモジュール
mod_ossl
モジュールにより、Oracle HTTP Serverに対する強力な暗号化が有効になります。これは、SSLCARevocationFile
、SSLCipherSuite
、SSLEngine
などのディレクティブのセットを受け付けます。
Oracle HTTP Serverに対してSSLを構成するには、使用するmod_ossl
モジュールのディレクティブをssl.conf
ファイルに入力します。
次の項で、これらのmod_ossl
ディレクティブについて説明します。
- SSLCARevocationFileディレクティブ
- SSLCARevocationPathディレクティブ
- SSLCipherSuiteディレクティブ
クライアントがSSLハンドシェイク時に使用できるSSL暗号スイートを指定します。このディレクティブでは、カンマまたはコロンで区切られた暗号指定文字列を使用して暗号スイートを識別します。 - SSLEngineディレクティブ
- SSLFIPSディレクティブ
- SSLHonorCipherOrderディレクティブ
- SSLInsecureRenegotiationディレクティブ
- SSLOptionsディレクティブ
- SSLProtocolディレクティブ
- SSLProxyCipherSuiteディレクティブ
- SSLProxyEngineディレクティブ
- SSLProxyProtocolディレクティブ
- SSLProxyWalletディレクティブ
- SSLRequireディレクティブ
- SSLRequireSSLディレクティブ
- SSLSessionCacheディレクティブ
- SSLProxySessionCacheディレクティブ
- SSLSessionCacheTimeoutディレクティブ
- SSLTraceLogLevelディレクティブ
- SSLVerifyClientディレクティブ
- SSLWalletディレクティブ
SSLCARevocationFileディレクティブ
証明書を発行したCA(認証局)からの証明書失効リスト(CRL)をまとめるファイルを指定します。このリストは、クライアント認証に使用されます。このファイルは、PEMでエンコードされた様々なCRLファイルを優先順位の順に連結したものです。このディレクティブは、SSLCARevocationPath
の代替または補助用に使用できます。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
SSLCARevocationFile ${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/crl/ca_bundle.cr |
デフォルト |
なし |
親トピック: mod_osslモジュール
SSLCARevocationPathディレクティブ
PEMでエンコードされている証明書失効リスト(CRL)が格納されるディレクトリを指定します。CRLは、証明書の発行元のCA(認証局)から届きます。CRLのいずれかに記載されている証明書を使用してクライアントが自身を認証しようとすると、証明書は取り消され、そのクライアントはサーバーに対して自身を認証できなくなります。
このディレクティブは、CRLのハッシュ値を含むディレクトリを指す必要があります。ハッシュを作成できるコマンドの詳細は、『Oracle Fusion Middlewareの管理』のorapkiに関する項を参照してください。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
SSLCARevocationPath ${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/crl |
デフォルト |
なし |
親トピック: mod_osslモジュール
SSLCipherSuiteディレクティブ
クライアントがSSLハンドシェイク時に使用できるSSL暗号スイートを指定します。このディレクティブでは、カンマまたはコロンで区切られた暗号指定文字列を使用して暗号スイートを識別します。
SSLCipherSuiteには次の接頭辞を使用できます。
-
none: リストに暗号を追加します。
-
+: リストに暗号を追加し、リスト内の正しい位置に配置します。
-
-: リストから暗号を削除します(後で追加できます)。
-
!: リストから暗号を永続的に削除します。
タグは、暗号指定文字列を構成する接頭辞と結合されます。表H-1に、暗号スイートのタグを示します。
ノート:
Rivest Cipher 4 (RC4)およびTriple Data Encryption Standard (3DES)アルゴリズムを使用する暗号スイートは、Oracle HTTP Serverバージョン12.2.1.3以降からは既知のセキュリティ上の脆弱性があるため非推奨です。これらの暗号は、Oracle HTTP ServerのデフォルトのSSLポートのSSLCipherSuite構成から削除されます。また、これらの暗号は、RC4および3DESの別名を除くすべてのサポートされた暗号の別名からも削除されます。Oracle HTTP ServerがEnterprise ManagerまたはWebLogic Scripting Toolを介して管理される場合、これらのツールは安全ではないRC4および3DES暗号を認識しないため、これらのツールを介してこれらの暗号スイートを構成することはできません。
下位互換性を提供するため、Oracle HTTP Serverでは、RC4および3DES暗号化を明示的に暗号スイート構成に追加した場合、これらは有効になります。これらの安全ではない暗号を使用するには、ファイル・エディタを使用して.confファイル内のSSLCipherSuiteディレクトリを編集し、それらを暗号リストの末尾に追加します。
表11-2は、必要な暗号スイートを記述するためにこの文字列で使用できるタグを示しています。
カテゴリ | 値 |
---|---|
例 |
この例では、MD5強度暗号を除くすべての暗号が指定されています。 |
構文 |
|
デフォルト |
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, SSL_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_AES_128_CBC_SHA |
表H-1 SSL暗号スイートのタグ
機能 | タグ | 意味 |
---|---|---|
キーの交換 |
|
|
キーの交換 |
|
楕円曲線Diffie–Hellman交換のキー交換 |
認証 |
|
|
暗号化 |
|
Triple |
暗号化 |
|
|
データ整合性 |
|
|
データ整合性 |
|
SHA256ハッシュ関数 |
データ整合性 |
|
SHA384ハッシュ関数 |
別名 |
|
すべてのTLS V1暗号 |
別名 |
|
すべてのTLS V1.1暗号 |
別名 |
|
すべてのTLS V1.2暗号 |
別名 |
|
128ビット暗号化を使用したすべての暗号 |
別名 |
|
サイズが128ビットを超える暗号キーを使用したすべての暗号 |
別名 |
|
AES暗号化を使用したすべての暗号 |
別名 |
|
RSA認証およびRSAキー交換の両方を使用したすべての暗号 |
別名 |
|
認証の楕円曲線デジタル署名アルゴリズムを使用したすべての暗号 |
別名 |
|
楕円曲線Diffie–Hellman交換のキー交換を使用したすべての暗号 |
別名 |
|
暗号用のGalois/Counter Mode (GCM)でAdvanced Encryption Standardを使用するすべての暗号。 |
表H-2に、Oracle Advanced Security 12c (12.2.1)でサポートされている暗号スイートを示します。
ノート:
Solaris Sparcプラットフォームで mod_ossl
を使用する場合、基礎となる暗号化ライブラリはSparc T4プロセッサを検出して、暗号化操作を高速化するオンコア暗号化アルゴリズムを使用します。この機能を有効にするための構成は不要です。Oracle SPARC Enterprise Tシリーズ・プロセッサでは、RSA、3DES、AES-CBC、AES-GCM、SHA1、SHA256およびSHA38の暗号化アルゴリズムをサポートしています。
表H-2 Oracle Advanced Security 12.2.1でサポートされている暗号スイート
暗号スイート | キーの交換 | 認証 | 暗号化 | データ整合性 | TLS v1 | TLS v1.1 | TLS v1.2 |
---|---|---|---|---|---|---|---|
|
RSA |
|
|
|
○ |
○ |
○ |
|
RSA |
|
|
|
○ |
○ |
○ |
|
RSA |
|
|
|
○ |
○ |
○ |
|
RSA |
|
|
|
○ |
○ |
○ |
|
RSA |
|
|
|
いいえ |
いいえ |
○ |
|
RSA |
|
|
|
いいえ |
いいえ |
○ |
|
RSA |
|
|
|
いいえ |
いいえ |
○ |
|
RSA |
|
|
|
いいえ |
いいえ |
○ |
|
ECDHE |
|
|
|
○ |
○ |
○ |
|
ECDHE |
|
|
|
○ |
○ |
○ |
|
ECDHE |
|
|
|
いいえ |
いいえ |
○ |
|
ECDHE |
|
|
|
いいえ |
いいえ |
○ |
|
ECDHE |
|
|
|
いいえ |
いいえ |
○ |
|
ECDHE |
|
|
|
いいえ |
いいえ |
○ |
|
|
|
|
|
○ |
○ |
○ |
|
|
|
|
|
○ |
○ |
○ |
|
|
|
|
|
○ |
○ |
○ |
|
|
|
|
|
○ |
○ |
○ |
|
|
|
|
|
○ |
○ |
○ |
|
|
|
|
|
○ |
○ |
○ |
|
RSA署名付きのエフェメラルECDH |
RSA |
|
|
いいえ |
いいえ |
○ |
|
|
RSA |
|
|
いいえ |
いいえ |
○ |
|
|
RSA |
|
|
いいえ |
いいえ |
○ |
|
|
RSA |
|
|
いいえ |
いいえ |
○ |
親トピック: mod_osslモジュール
SSLEngineディレクティブ
SSLプロトコル・エンジンの使用を切り替えます。通常は<VirtualHost>
セクションの中で使用し、特定の仮想ホストに対してSSLを有効にします。デフォルトでは、SSLプロトコル・エンジンは、メイン・サーバーとすべての構成済仮想ホストの両方で無効にされています。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
|
デフォルト |
|
親トピック: mod_osslモジュール
SSLFIPSディレクティブ
このディレクティブは、SSLライブラリのFIPS_modeフラグの使用方法を切り替えます。これは、グローバル・サーバー・コンテキスト内に設定される必要があり、競合する設定(SSLFIPS off
が続くSSLFIPS on
など)があると構成できません。このモードはすべてのSSLライブラリ操作に適用されます。
カテゴリ | 値 |
---|---|
構文 |
SSLFIPS ON | OFF |
例 |
SSLFIPS ON |
デフォルト |
|
SSLFIPSの変更を構成する場合は、SSLFIPS on
/off
ディレクティブがssl.conf内でグローバルに設定されている必要があります。仮想レベルの構成はSSLFIPSディレクティブ内で無効になっています。したがって、仮想ディレクティブにSSLFIPSを設定するとエラーになります。
ノート:
SSLFIPSに関する次の制限に注意してください。
-
Oracle HTTP ServerでSSLFIPSモードを有効化するには、AESで暗号化された(compat_v12)ヘッダー付きで作成されたウォレットが必要になります。新しいウォレットを作成する場合、または既存のウォレットをAES暗号を使用して変換する場合は、Oracle Fusion Middlewareの管理のorapkiで次の項を参照してください。
次の表で、SSLFIPSモードで様々なプロトコルとともに動作する暗号スイートについて説明します。これらの暗号スイートの実装方法の手順は、SSLCipherSuiteディレクティブを参照してください。
表H-3に、SSLFIPSモードのTLS 1.0、TLS1.1およびTLS 1.2プロトコルで動作する暗号スイートを示します。
表H-3 SSLFIPSモードのすべてのTLSプロトコルで動作する暗号
暗号名 | 暗号は次のプロトコルで動作します。 |
---|---|
SSL_RSA_WITH_3DES_EDE_CBC_SHA |
TLS 1.0、TLS1.1およびTLS 1.2 |
SSL_RSA_WITH_AES_128_CBC_SHA |
TLS 1.0、TLS1.1およびTLS 1.2 |
SSL_RSA_WITH_AES_256_CBC_SHA |
TLS 1.0、TLS1.1およびTLS 1.2 |
表H-4に、SSLFIPSモードで使用できる暗号スイートおよびプロトコルを示します。
表H-4 FIPSモードで動作する暗号
暗号名 | 暗号は次のプロトコルで動作します。 |
---|---|
TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA |
TLS 1.0以降 |
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA |
TLS 1.0以降 |
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA |
TLS 1.0以降 |
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 |
TLS1.2以降 |
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 |
TLS1.2以降 |
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 |
TLS1.2以降 |
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 |
TLS1.2以降 |
TLS_RSA_WITH_AES_128_CBC_SHA256 |
TLS1.2以降 |
TLS_RSA_WITH_AES_256_CBC_SHA256 |
TLS1.2以降 |
TLS_RSA_WITH_AES_128_GCM_SHA256 |
TLS1.2以降 |
TLS_RSA_WITH_AES_256_GCM_SHA384 |
TLS1.2以降 |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 |
TLS1.2以降 |
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 |
TLS1.2以降 |
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 |
TLS1.2以降 |
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 |
TLS1.2以降 |
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA |
TLS 1.0以降 |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA |
TLS 1.0以降 |
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA |
TLS 1.0以降 |
ノート:
-
SSLFIPSがONに設定され、FIPSをサポートしない暗号がサーバーで使用されている場合、その暗号を使用するクライアント・リクエストは失敗します。
-
TLS_ECDHE_ECDSA暗号スイートを使用するには、Oracle HTTP ServerでECCユーザー証明書付きで作成されたウォレットが必要です。TLS_ECDHE_ECDSA暗号スイートはRSA証明書では機能しません。
-
SSL_RSA/TLS_RSA/TLS_ECDHE_RSA暗号スイートを使用するために、Oracle HTTP ServerではRSAユーザー証明書付きで作成されたウォレットが必要です。SSL_RSA/TLS_RSA/TLS_ECDHE_RSA暗号スイートはECC証明書では機能しません。
ウォレットでのECC/RSA証明書の構成方法の詳細は、Oracle Fusion Middlewareの管理のorapkiを使用したOracle Walletの作成および表示を参照してください。
これらの暗号スイートおよび対応するプロトコルを実装する方法の手順は、SSL暗号スイート・ディレクティブおよびSSLプロトコルを参照してください。
表H-5に、SSPFIPSモードで動作しない暗号スイートを示します。
表H-5 SSLFIPSモードで動作しない暗号
暗号名 | 説明 |
---|---|
TLS_ECDHE_ECDSA_WITH_RC4_128_SHA |
すべてのプロトコルでSSLFIPSモードで動作しない |
SSL_RSA_WITH_RC4_128_SHA |
すべてのプロトコルでSSLFIPSモードで動作しない |
TLS_ECDHE_RSA_WITH_RC4_128_SHA |
すべてのプロトコルでSSLFIPSモードで動作しない |
親トピック: mod_osslモジュール
SSLHonorCipherOrderディレクティブ
ハンドシェイク中に暗号を選択すると、通常、クライアントのプリファレンスが使用されます。このディレクティブが有効な場合、サーバーのプリファレンスがかわりに使用されます。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
SSLHonorCipherOrder ON |
デフォルト |
|
サーバーのプリファレンス順序はSSLCipherSuiteディレクティブを使用して構成できます。SSLHonorCipherOrderがONに設定されている場合、SSLCipherSuiteの値は暗号値の順序付きリストとして扱われます。
このリストの最初に表示される暗号値は、リストのそれ以降に表示される暗号よりもサーバーで優先されます。
例:
SSLCipherSuite TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 SSLHonorCipherOrder ON
この例では、サーバーはTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
を、クライアントがサポートしている場合、リストで最初に表示され、SSL接続用にこの暗号を選択するので、SSLCipherSuiteディレクティブで構成されているその他のすべての暗号よりも優先します。
親トピック: mod_osslモジュール
SSLInsecureRenegotiationディレクティブ
最初は指定されていたように、SSLプロトコルとTLSプロトコルのすべてのバージョン(TLS/1.2を含めて、これまで)は、ネゴシエーション中の中間者攻撃(CVE-2009-3555)に対して脆弱でした。この脆弱性によって、攻撃者は、Webサーバーで表示される任意の平文をHTTPリクエストの前に付け加えることができます。クライアントとサーバーの両方でサポートされている場合は、この脆弱性を修正するプロトコルの拡張が開発されています。
中間者攻撃(CVE-2009-3555)の詳細は、次を参照してください。
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-3555
このディレクティブに使用できる値は、次のとおりです:
- デフォルト・モード: ディレクティブSSLInsecureRenegotionが構成に指定されていない場合、Oracle HTTP Serverでクライアント起動の再ネゴシエーションは許可されません。これが最もセキュアな操作モードです。
SSLInsecureRenegotiation ON
: このオプションでは、再ネゴシエーションを実行するためのRI/SCSVのない脆弱なピアを許可します。したがって、このオプションはCVE-2009-3555で説明している再ネゴシエーション攻撃に対してサーバーを脆弱なままにするため、注意して使用する必要があります。SSLInsecureRenegotiation OFF
: このオプションは、クライアント起動の再ネゴシエーションのサポートが必要な場合に使用できます。SSLInsecureRenegotiationディレクティブが構成内に存在し、OFFに設定されている場合、Oracle HTTP Serverでクライアント起動の再ネゴシエーションが許可されます。ただし、セッションのネゴシエーションと再ネゴシエーションが可能なのは、RI/SCSVをサポートするピアのみです。
カテゴリ | 値 |
---|---|
構文 |
SSLInsecureRenegotiation ON | OFF |
例 |
SSLInsecureRenegotiation ON |
デフォルト |
デフォルト値は、 |
SSLInsecureRenegotiationを構成するには、ssl.conf
ファイルを編集して、SSLInsecureRenegotiation
ON/OFFを設定し、セキュアでない再ネゴシエーションを有効(または無効)に設定します。このディレクティブは、サーバー構成コンテキストまたは仮想ホスト・コンテキストのいずれかで構成できます。
親トピック: mod_osslモジュール
SSLOptionsディレクティブ
ディレクトリ単位で様々なランタイム・オプションを制御します。一般に、1つのディレクトリに複数のオプションが適用される場合は、最も包括的なオプションが適用されます(オプションはマージされません)。ただし、SSLOptions
ディレクティブのすべてのオプションの前にプラス(+)またはマイナス(-)符号が付いている場合は、オプションがマージされます。プラスが前に付いているオプションは、現在有効なオプションに追加され、マイナスが前に付いているオプションは、現在有効なオプションから除外されます。
使用できる値は次のとおりです:
-
StdEnvVars
: SSLに関連するCGI/SSI環境変数の標準セットを作成します。抽出操作はCPU時間が長くかかること、また静的コンテンツを提供するときには一般に適用されないことから、これはデフォルトでは無効になっています。一般に、この値はCGI/SSIリクエストの場合にのみ有効にします。 -
ExportCertData
: 次の追加CGI/SSI変数を有効にします。SSL_SERVER_CERT
SSL_CLIENT_CERT
SSL_CLIENT_CERT_CHAIN_n
(ここでn= 0, 1, 2...)これらの変数には、現在のHTTPS接続のサーバーおよびクライアント用にPrivacy Enhanced Mail (PEM)でエンコードされたX.509証明書が含まれています。CGIスクリプトではこれを使用して、より詳しい証明書チェックを行うことができます。クライアント証明書連鎖の他の証明書がすべて提供されます。このオプションを使用するとパフォーマンスに時間がかかるため、デフォルトではOffになっています。
SSL_CLIENT_CERT_CHAIN_n
変数の順序は、次のようになります。SSL_CLIENT_CERT_CHAIN_0
は、SSL_CLIENT_CERT
を署名する中間的なCAです。SSL_CLIENT_CERT_CHAIN_1
は、SSL_CLIENT_ROOT_CERT
をルートCAとして、SSL_CLIENT_CERT_CHAIN_0
などを署名する中間的なCAです。 -
FakeBasicAuth
: クライアントのX.509証明書の対象識別名をHTTP Basic認証のユーザー名に変換します。これは、標準のHTTPサーバー認証方式がアクセス制御に使用できることを意味します。ユーザーからはパスワードが取得されず、文字列passwordが置き換えられます。 -
StrictRequire
: SSLRequireSSLディレクティブまたはディレクティブに従ってアクセスを禁止する必要がある場合にアクセスを拒否します。StrictRequire
を指定しないと、Satisfy any
ディレクティブ設定がSSLRequire
またはSSLRequireSSL
ディレクティブをオーバーライドして、クライアントがホスト制約を渡した場合、または有効なユーザー名とパスワードを指定した場合に、アクセスが許可されてしまう可能性があります。このように、
SSLRequireSSL
またはSSLRequire
をSSLOptions +StrictRequire
と組み合せることで、mod_ossl
はあらゆる場合にSatisfy any
ディレクティブをオーバーライドできます。 -
CompatEnvVars
: Apache SSL 1.x、mod_ssl
2.0.x、Sioux 1.0およびStronghold 2.xとの後方互換性のために、廃止された環境変数をエクスポートします。これは、既存のCGIスクリプトに対する互換性を提供するために使用します。 -
OptRenegotiate
: SSLのディレクティブがディレクトリ単位のコンテキストで使用されるときに、最適化されたSSL接続再ネゴシエーション処理を有効にします。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
|
デフォルト |
なし |
親トピック: mod_osslモジュール
SSLProtocolディレクティブ
mod_ossl
がサーバー環境を設定するときに使用するSSLプロトコルを指定しますクライアントは、指定されたプロトコルのいずれかでのみ接続できます。使用できる値は次のとおりです:
-
TLSv1
-
TLSv1.1
-
TLSv1.2
-
All
複数の値をスペース区切りのリストとして指定できます。構文で、"-"および"+"記号の意味は次のとおりです。
-
+ : プロトコルをリストに追加します
-
- : プロトコルをリストから削除します
現在のリリースでは、All
は+TLSv1.2
として定義されます。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
|
デフォルト |
|
親トピック: mod_osslモジュール
SSLProxyCipherSuiteディレクティブ
プロキシがSSLハンドシェイク時に使用できるSSL暗号スイートを指定します。このディレクティブでは、コロンで区切られた暗号指定文字列を使用して暗号スイートを識別します。表H-1に、必要な暗号スイートを記述するためにこの文字列で使用するタグを示します。SSLProxyCipherSuiteには次の値を使用できます。
-
none: リストに暗号を追加します。
-
+: リストに暗号を追加し、リスト内の正しい位置に配置します。
-
-: リストから暗号を削除します(後で追加できます)。
-
!: リストから暗号を永続的に削除します。
タグは、暗号指定文字列を構成する接頭辞と結合されます。タグは、暗号指定文字列を構成する接頭辞と結合されます。SSLProxyCipherSuiteディレクティブはSSLCipherSuiteディレクティブと同じタグを使用します。サポートされているスイートのタグのリストについては、表H-1を参照してください。
カテゴリ | 値 |
---|---|
例 |
この例では、MD5強度暗号を除くすべての暗号が指定されています。 |
構文 |
|
デフォルト |
ALL:!ADH:+HIGH:+MEDIUM |
SSLProxyCipherSuiteディレクティブはSSLCipherSuiteディレクティブと同じ暗号スイートを使用します。Oracle Advanced Security 12.2.1でサポートされている暗号スイートのリストについては、表H-2を参照してください。
親トピック: mod_osslモジュール
SSLProxyEngineディレクティブ
プロキシのSSL/TLSプロトコル・エンジンを有効または無効にします。SSLProxyEngineは<VirtualHost>
セクションの中で使用し、特定の仮想ホストでのプロキシの使用に対してSSL/TLSを有効にします。デフォルトでは、SSL/TLSプロトコル・エンジンは、メイン・サーバーとすべての構成済仮想ホストの両方でプロキシに対して無効になっています。
SSLProxyEngineは、(Proxy
ディレクティブまたはProxyRequest
ディレクティブを使用した)フォワード・プロキシとして動作する仮想ホストに含めることはできません。プロキシSSL/TLSリクエストに対してフォワード・プロキシ・サーバーを有効化する際に、SSLProxyEngineは必須ではありません。
カテゴリ | 値 |
---|---|
構文 |
SSLProxyEngine ON | OFF |
例 |
SSLProxyEngine on |
デフォルト |
|
親トピック: mod_osslモジュール
SSLProxyProtocolディレクティブ
mod_ossl
がサーバー環境でプロキシ接続を設定するときに使用するSSLプロトコルを指定します。プロキシは、指定されたプロトコルのいずれかでのみ接続できます。使用できる値は次のとおりです:
-
TLSv1
-
TLSv1.1
-
TLSv1.2
-
All
複数の値をスペース区切りのリストとして指定できます。構文で、"-"および"+"記号の意味は次のとおりです。
-
+ : プロトコルをリストに追加します
-
- : プロトコルをリストから削除します
現在のリリースでは、All
は+TLSv1
+TLSv1.1
+TLSv1.2
として定義されます。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
|
デフォルト |
|
親トピック: mod_osslモジュール
SSLProxyWalletディレクティブ
プロキシ接続が使用する必要のある、WRLを使用してウォレットの場所を指定(ファイルパスとして指定)します。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
SSLProxyWallet "${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/proxy" |
デフォルト |
なし |
親トピック: mod_osslモジュール
SSLRequireディレクティブ
ノート:
SSLRequireは非推奨であり、必須式に置き換える必要があります。任意の複合ブール式がTRUEでないかぎり、アクセスを拒否します。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
|
デフォルト |
なし |
式変数の理解
式変数は、次の構文と一致する必要があります(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}"
表H-6と表H-7に標準変数とSSL変数を示します。これらの値はvarname
の有効値です。
function ::= funcname "(" funcargs ")"
funcname
には、次の関数を使用できます。
file(filename)
file関数は文字列引数(ファイル名)を1つ取り、そのファイルの内容に拡張します。これは、正規表現に照らしてファイルの内容を評価する場合に役立ちます。
表H-6に、SSLRequireディレクティブのvarname
の標準変数を示します。
表H-6 SSLRequireのvarnameの標準変数
標準変数 | 標準変数 | 標準変数 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
表H-7に、SSLRequireディレクティブのvarnameのSSL変数を示します。
表H-7 SSLRequireのvarnameのSSL変数
SSL変数 | SSL変数 | SSL変数 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
親トピック: mod_osslモジュール
SSLRequireSSLディレクティブ
SSLを使用していないクライアントに対してアクセスを拒否します。構成エラーにより、セキュリティがぜい弱になる可能性があるSSL対応の仮想ホストまたはディレクトリの完全保護に役立つディレクティブです。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
|
デフォルト |
なし |
親トピック: mod_osslモジュール
SSLSessionCacheディレクティブ
グローバル・セッションまたはプロセス間セッションのセッション・キャッシュ・ストレージ・タイプを指定します。キャッシュは、リクエストのパラレル処理を高速化するオプションの方法を提供します。有効な値は次のとおりです。
-
none
: グローバルまたはプロセス間セッション・キャッシュを無効にします。機能に対する影響はありませんが、パフォーマンスに大きな差が出ます。 -
shmcb:
/path/to/datafile[bytes]: 高パフォーマンスのShared Memory Cyclic Buffer (SHMCB)セッション・キャッシュを使用して、サーバー・プロセスのローカルSSLメモリー・キャッシュと同期化します。ノート: このshm設定では、ローカル・ディスクの/path/to/datafileの下にログ・ファイルは作成されません。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
|
デフォルト |
|
親トピック: mod_osslモジュール
SSLProxySessionCacheディレクティブ
このディレクティブは、OHSがmod_proxy
モジュールを使用してプロキシとして動作するように構成されている場合に、SSLセッション情報をキャッシュする、グローバルまたはプロセス間セッション・キャッシュの使用を切り替えます。SSLセッション情報の格納に使用されるグローバルまたはプロセス間SSLセッション・キャッシュのタイプは、SSLSessionCacheディレクティブによって制御されます。
セッション・キャッシュ内でSSLセッションが期限切れになるまでの秒数は、SSLSessionCacheTimeoutディレクティブによって制御されます。セッション・キャッシュへのアクセスをシリアライズして破損を防止するために、ssl-cache mutexが使用されます。
SSLProxySessionCacheディレクティブに使用できる値は、次のとおりです:
-
On
: OHSがmod_proxy
モジュールを使用してプロキシとして動作するように構成されている場合に、SSLセッション・キャッシュを有効化します。このディレクティブがOn
に設定されている場合は、SSLSessionCacheディレクティブを適切に構成して、SSLセッション・キャッシュのタイプを選択する必要があります。SSLSessionCacheの値を
none
に設定すると、プロキシのSSLセッション・キャッシュをオンにし、使用するキャッシュのタイプを指定しないという矛盾する設定になるため、値はnoneにできません。 -
Off
: OHSが、mod_proxyモジュールを使用することでプロキシとして動作するよう構成されている場合に、SSLセッション・キャッシュを無効化します。これは推奨の設定ではありません。このオプションを選択する前に、フル・ハンドシェイクのパフォーマンス・コストについて、慎重に考慮する必要があります。
カテゴリ | 値 |
---|---|
構文 |
|
コンテキスト |
サーバーの構成 |
デフォルト |
|
モジュール識別子 |
|
次の例では、SSLSessionCacheディレクティブとSSLProxySessionCacheディレクティブを使用してOHSのSSLセッション・キャッシュ動作を制御する方法を示します。
例1
LoadModule proxy_module "${PRODUCT_HOME}/modules/mod_proxy.so"
LoadModule proxy_balancer_module
"${PRODUCT_HOME}/modules/mod_proxy_balancer.so"
SSLSessionCache none
SSLProxySessionCache on
<VirtualHost _default_:443>
SSLEngine on
<Proxy "balancer://mybalancer">
SSLProxyEngine On
#..
</Proxy>
#...
</VirtualHost>
これは許容される構成ではありません。SSLSessionCacheがNone
に設定されているときに、SSLProxySessionCacheをonにすることはできません。
例2
LoadModule proxy_module "${PRODUCT_HOME}/modules/mod_proxy.so"
LoadModule proxy_balancer_module
"${PRODUCT_HOME}/modules/mod_proxy_balancer.so"
SSLSessionCache none
SSLProxySessionCache off
<VirtualHost _default_:443>
SSLEngine on
<Proxy "balancer://mybalancer">
SSLProxyEngine On
#..
</Proxy>
#...
</VirtualHost>
この例では、次のようになります
- OHS構成内で定義されているSSL有効仮想ホストで、SSLセッション・キャッシュをオフにします。
- プロキシ
mybalancer
で処理されるリクエストに対して、SSLクライアント・セッション・キャッシュをオフにします。
例3
LoadModule proxy_module "${PRODUCT_HOME}/modules/mod_proxy.so"
LoadModule proxy_balancer_module
"${PRODUCT_HOME}/modules/mod_proxy_balancer.so"
SSLSessionCache
"shmcb:${ORACLE_INSTANCE}/servers/${COMPONENT_NAME}/logs/ssl_scache(512000)"
SSLProxySessionCache off
<VirtualHost _default_:443>
SSLEngine on
<Proxy "balancer://mybalancer">
SSLProxyEngine On
#..
</Proxy>
#...
</VirtualHost>
この例では、次のようになります
- OHS構成内で定義されているSSL有効仮想ホストで、SSLセッション・キャッシュをオンにします。
- プロキシ
mybalancer
で処理されるリクエストに対して、SSLクライアント・セッション・キャッシュをオフにします。
例4
LoadModule proxy_module "${PRODUCT_HOME}/modules/mod_proxy.so"
SSLSessionCache
"shmcb:${ORACLE_INSTANCE}/servers/${COMPONENT_NAME}/logs/ssl_scache(512000)"
SSLProxySessionCache off
<VirtualHost _default_:443>
SSLEngine on
SSLProxyEngine on
ProxyPass / https://<backend_host_name>:<backend_port>/
ProxyPassReverse / https://<backend_host_name>:<backend_port>/
</VirtualHost>
この例では、次のようになります
- OHS構成内で定義されているSSL有効仮想ホストで、SSLセッション・キャッシュをオンにします。
- 仮想ホスト(
_default_:443
)内で定義されるリバース・プロキシで処理されるリクエストのSSLクライアント・セッション・キャッシュをオフにします。
例5
LoadModule proxy_module "${PRODUCT_HOME}/modules/mod_proxy.so"
LoadModule proxy_balancer_module
"${PRODUCT_HOME}/modules/mod_proxy_balancer.so"
SSLSessionCache
"shmcb:${ORACLE_INSTANCE}/servers/${COMPONENT_NAME}/logs/ssl_scache(512000)"
SSLProxySessionCache on
<VirtualHost _default_:443>
SSLEngine on
<Proxy "balancer://mybalancer">
SSLProxyEngine On
#..
</Proxy>
#...
</VirtualHost>
この例では、次のようになります
- OHS構成内で定義されているSSL有効仮想ホストで、SSLセッション・キャッシュをオンにします。
- プロキシ
mybalancer
で処理されるリクエストに対して、SSLクライアント・セッション・キャッシュをオンにします。
例6
LoadModule proxy_module "${PRODUCT_HOME}/modules/mod_proxy.so"
SSLSessionCache
"shmcb:${ORACLE_INSTANCE}/servers/${COMPONENT_NAME}/logs/ssl_scache(512000)"
SSLProxySessionCache on
<VirtualHost _default_:443>
SSLEngine on
SSLProxyEngine on
ProxyPass / https://<backend_host_name>:<backend_port>/
ProxyPassReverse / https://<backend_host_name>:<backend_port>/
</VirtualHost>
この例では、次のようになります
- OHS構成内で定義されているSSL有効仮想ホストで、SSLセッション・キャッシュをオンにします。
- 仮想ホスト(
_default_:443
)内で定義されるリバース・プロキシで処理されるリクエストのSSLクライアント・セッション・キャッシュをオンにします。
例7
LoadModule proxy_module "${PRODUCT_HOME}/modules/mod_proxy.so"
LoadModule proxy_balancer_module
"${PRODUCT_HOME}/modules/mod_proxy_balancer.so"
SSLSessionCache
"shmcb:${ORACLE_INSTANCE}/servers/${COMPONENT_NAME}/logs/ssl_scache(512000)"
SSLProxySessionCache on
<VirtualHost _default_:443>
SSLEngine on
<Proxy "balancer://mybalancer">
SSLProxyEngine On
#..
</Proxy>
<Proxy "balancer://mybalancer2">
SSLProxyEngine On
#..
</Proxy>
#...
</VirtualHost>
<VirtualHost _default_:4448>
SSLEngine on
<Proxy "balancer://mybalancer3">
SSLProxyEngine On
#..
</Proxy>
<Proxy "balancer://mybalancer4">
SSLProxyEngine On
#..
</Proxy>
#...
</VirtualHost>
この例では、次のようになります
- OHS構成内で定義されているすべてのSSL有効仮想ホストで、SSLセッション・キャッシュをオンにします。
- プロキシ
mybalancer
、mybalancer2
、mybalancer3
およびmybalancer4
によって処理されるリクエストのSSLクライアント・セッション・キャッシュをオンにします。
親トピック: mod_osslモジュール
SSLSessionCacheTimeoutディレクティブ
セッション・キャッシュ内でSSLセッションの有効期限が満了になるまでの秒数を指定します。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
|
デフォルト |
|
親トピック: mod_osslモジュール
SSLTraceLogLevelディレクティブ
SSLTraceLogLevel
は、Oracle Securityライブラリのエラー・ログに記録されるメッセージの冗長性を調整します。特定のレベルを指定すると、それより上位レベルの重要度のメッセージもすべて報告されます。たとえば、SSLTraceLogLevel ssl
が設定されていると、error、warn、userおよびdebugのログ・レベルのメッセージも報告されます。
ノート:
このディレクティブはssl.conf
ファイルにグローバルにのみ設定できます。
SSLTraceLogLevelでは次のログ・レベルが使用されます。
-
none
: Oracle Security Traceが無効 -
fatal
: 致命的なエラーが発生してシステムが使用できない状態 -
error
: エラー状態。 -
warn
: 警告状態。 -
user
: 正常ではあるが、重大な状態 -
debug
: デバッグ・レベルの状態 -
ssl
: SSLレベルのデバッグ
カテゴリ | 値 |
---|---|
構文 |
SSLTraceLogLevel none | fatal | error | warn | user | debug | ssl |
例 |
SSLTraceLogLevel fatal |
デフォルト |
なし |
親トピック: mod_osslモジュール
SSLVerifyClientディレクティブ
接続時にクライアントが証明書を提示する必要があるかどうかを指定します。有効な値は次のとおりです。
-
none
: クライアント証明書は不要です。 -
optional
: クライアントは有効な証明書を提示できます。 -
require
: クライアントは有効な証明書を提示する必要があります。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
|
デフォルト |
なし |
ノート:
mod_ssl
に含まれているレベルoptional_no_ca
(クライアントは有効な証明書を提示できるが、証明書が検証可能である必要はない)は、mod_ossl
ではサポートされていません。
親トピック: mod_osslモジュール
SSLWalletディレクティブ
WRLを使用してウォレットの場所を指定します。ファイルパスとして指定されます。
カテゴリ | 値 |
---|---|
構文 |
|
例 |
SSLWallet "${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/default" |
デフォルト |
これがデフォルトです。 |
ノート:
ウォレットにMD5アルゴリズムで署名された証明書や証明書リクエストがある場合、Oracle HTTP Serverは起動に失敗します。親トピック: mod_osslモジュール