Secure Sockets Layer (SSL) ディレクティブ

Secure Sockets Layer (SSL) ディレクティブは、 IBM® HTTP Serverの SSL 機能を制御する構成パラメーターです。

IBM HTTP Server では、 <VirtualHost> セクション内で、または <VirtualHost> セクションの外でグローバルに、多くの Secure Sockets Layer (SSL) ディレクティブを指定することができます。

名前ベースの SSL virtualhost が使用される場合、SSL ハンドシェークを制御する構成ディレクティブは、固有の IP:PORT 組み合わせごとの、デフォルトの (最初に示された) virtualhost からのみ取得されます。

どちらのコンテキストでも有効なほとんどのディレクティブは、グローバル構成から仮想ホスト構成にコピーまたはマージされます。つまり、SSL が有効になっている複数の仮想ホスト内でディレクティブを再度指定する必要はありません。 OCSP 関連のディレクティブと SSLProtocolDisable は例外であることに注意してください。 がマージされる間 SSLCipherSpec はマージされますが、このディレクティブはグローバルに指定するか、 <VirtualHost> セクション内で指定することが推奨され、同時に指定することはできません。 グローバルに指定された場合と、 <VirtualHost> セクション内で指定された場合、それぞれがデフォルトに対して相対的に評価され、その結果の和が有効になる。 そのため、結果が不明瞭になる可能性があります。

ディレクトリー・スコープ (< Location>、< Directory>、または htaccess) で指定された SSL ディレクティブの場合、より一般的なスコープの構成セクションは、より具体的なスコープの構成セクションにマージされます。 このカテゴリーのディレクティブの例として、SSLCipherBanSSLCipherRequireSSLClientAuthRequireSSLVersion などがあります。 これらのディレクティブが使用される頻度は、前述のものと比べて低くなります。

グローバルに指定された keyfile ディレクティブを除き、可能な限り、構成はマージしないでください。 複数の構成スコープのマージに依存する構成については、必ずその結果を検証してください。

以下のリストには、 IBM HTTP Serverの SSL ディレクティブが含まれています。
非推奨フィーチャー: 証明書失効リスト (CRL) は、非推奨フィーチャーです。 TLS 証明書では Online Certificate Status Protocol (OCSP) を使用してください。

SSLOCSPResponderURL

SSLOCSPResponderURL ディレクティブにより、静的に構成されたオンライン証明書状態プロトコル (OCSP)・レスポンダーを介してクライアント証明書を検査できます。
名前 説明
構文

[AIX Solaris HP-UX Linux Windows]SSLOCSPResponderURL<URL>

有効範囲 仮想ホスト
デフォルト 使用不可
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストごとに 1 つ
OCSP レスポンダーを指す完全修飾 URL。例えば、http://hostname:2560/ のようになります。

CRL 検査を構成している場合でも、OCSP 検査は CRL 検査の前に実行されます。 CRL 検査は、CRL の結果が不明または不確定な場合にのみ行われます。

もし SSLOCSPResponderURL が設定されている場合、 IBM HTTP Server は、SSLクライアント証明書が提供されたときに、提供された URL を使用して証明書の失効ステータスをチェックします。

SSLOCSPEnable および SSLOCSPResponderURL の両方を構成している場合は、SSLOCSPResponderURL で定義されたレスポンダーが先に検査されます。 失効状況が不明または解決不能の場合、 IBM HTTP Server は SSLOCSPEnableの OCSP レスポンダーを検査します。
問題の回避: 場合によっては、 IBM HTTP Server がクライアント証明書の失効状況を判別できないことがあります。これは、失効データのソースであるバックエンド・サーバーが使用できないためです。 以下のことに留意してください。
  • 証明書が CertificateDistributionPoint または AIA 拡張の LDAP または HTTP URI 形式を使用する場合、 IBM HTTP Server システムがこのタイプの発信接続を確立できることを確認する。
  • [AIX Solaris HP-UX Linux Windows]ディレクティブは SSLUnknownRevocationStatus ディレクティブは、 IBM HTTP Server がバックエンドサーバと通信しているときに回復可能なエラーが発生し、 IBM HTTP Server が証明書の失効ステータスを判断できない場合のために用意されています。 デフォルト動作では、バックエンド・サーバーが証明書の失効を正常に示すことができるまで、ハンドシェーク処理を続行します。
  • [z/OS]明示的に構成された LDAP サーバー のみで CRL の照会を行うことができます。また、バックエンド・サーバーと接続できない場合、 SSL ハンドシェークを行うことはできません。

SSLOCSPEnable

SSLOCSPEnable ディレクティブは、クライアント証明書の AIA (Authority Information Access) 拡張機能に定義された OCSP レスポンダーを介してクライアント証明書を検査できるようにします。
名前 説明
構文

[AIX Solaris HP-UX Linux Windows]SSLOCSPEnable

有効範囲 仮想ホスト
デフォルト 使用不可
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストごとに 1 つのインスタンスが許可されています
なし

SSLOCSPEnable が設定されていて、SSL クライアント証明書チェーンに AIA 拡張機能が含まれている場合、 IBM HTTP Server は AIA 拡張機能によって示される OCSP レスポンダーに接続して、クライアント証明書の失効状況を検査します。

OCSP および CRL 検査の両方を構成している場合、OCSP 検査は CRL 検査の前に実行されます。 CRL 検査は、OCSP 検査の結果が不明または不確定な場合にのみ行われます。

SSLOCSPEnable および SSLOCSPResponderURL の両方を構成している場合は、SSLOCSPResponderURL で定義されたレスポンダーが先に検査されます。 失効状況が不明または解決不能の場合、 IBM HTTP Server は SSLOCSPEnableの OCSP レスポンダーを検査します。

[9.0.5.17 以降]

SSLOCSPCacheSize

SSLOCSPCacheSize ディレクティブは、内部 OCSP 応答キャッシュのサイズを指定します。
名前 説明
構文 SSLOCSPCacheSize number-of-elements
有効範囲 仮想ホスト
デフォルト

[AIX Solaris HP-UX Linux Windows]0

[z/OS]256

モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストごとに 1 つのインスタンスが許可されています
キャッシュ用のエレメントの最大数

ゼロ以外の SSLOCSPCacheSize を使用可能にすると、OCSP 応答のメモリー内キャッシュを使用できるようになります。 キャッシュ・エントリーの存続期間は、以下の 3 つの要因に依存します。

  1. OCSP レスポンダーによって指定された nextUpdate フィールド。
  2. HTTP OCSP レスポンダによって指定されたキャッシュ・ヘッダ。
  3. 新規エントリーを収容するためのフル・キャッシュからの除去。

キャッシュの内容は表示できず、Web サーバーの再始動時にのみクリアできます。

Keyfile ディレクティブ

keyfile ディレクティブは、使用する鍵ファイルを設定します。
名前 説明
構文

[Linux][AIX][Windows][z/OS][HP-UX][Solaris]Keyfile [/prompt] /path/to/key.kdb

[z/OS]KeyFile /saf [owner/]saf-keyring-name

有効範囲 グローバルおよび仮想ホスト
デフォルト なし
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。
Keyfile へのパス

プロンプト・オプションを使用して、鍵ファイルのパスワードを求めるプロンプトが HTTP サーバーによって始動時に出されるようにします。 プロンプト・オプションがサポートされるのは、サーバーがコマンド行から対話式に開始された場合のみです。

[z/OS]重要: z/OS® システムは、他のプラットフォームで作成されたキー・データベース・ファイルをサポートしていません。 z/OS システムに使用する鍵データベース・ファイルは、 z/OS プラットフォームで作成する必要があります。

IBM HTTP Server の始動に使用される ID は、このディレクティブで指定された鍵リングにアクセスできなければなりません。 ID にアクセス権がない場合、SSL 初期化は 失敗します。

SSLAcceleratorDisable ディレクティブ

SSLAcceleratorDisable ディレクティブは、 アクセラレーター・デバイスを使用不可にします。
名前 説明
構文 SSLAcceleratorDisable
有効範囲 仮想およびグローバル
デフォルト アクセラレーター・デバイスは使用可能です。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストごとに 1 つのインスタンス。
なし。 このディレクティブは、 仮想ホストの内部も含めて、構成ファイルの内の任意の場所に配置します。 初期設定中に、アクセラレーター・デバイスがマシン上にインストールされていることをシステムが判別した場合、 システムはそのアクセラレーターを使用して、セキュア・トランザクションの数を増やします。 このディレクティブは引数を取りません。
[AIX Solaris HP-UX Linux Windows]

SSLAllowNonCriticalBasicConstraints ディレクティブ

SSLAllowNonCriticalBasicConstraints ディレクティブを使用すると、RFC3280 に準拠しない、日本政府による GPKI 仕様の一部との互換性が実現します。
名前 説明
構文 SSLAllowNonCriticalBasicConstraints on|off
有効範囲 グローバル・サーバーまたは仮想ホスト
デフォルト Off
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。
なし。 このディレクティブは、発行者の認証局 (CA) 証明書で、非クリティカルの基本制約拡張によって認証は失敗しないという、証明書検証アルゴリズムの振る舞いを変更します。 これを使用すると、RFC3280 に準拠しない、日本政府による GPKI 指定との互換性が実現します。
重要: RFC3280 は、証明書のデジタル署名を検証するために使用される公開鍵を含むすべての CA 証明書で、この拡張が重要な拡張として表示される必要があることを示しています。
[Linux][AIX][z/OS][HP-UX][Solaris]

SSLCacheDisable ディレクティブ

SSLCacheDisable ディレクティブは、外部 SSL セッション ID キャッシュを使用不可にします。
名前 説明
構文 SSLCacheDisable
有効範囲 物理 Apache サーバー・インスタンスごとに 1 つ (仮想ホスト・スタンザの外部でのみ使用可能)
デフォルト なし
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 許可されません。
なし。
[Linux][AIX][z/OS][HP-UX][Solaris]

SSLCacheEnable ディレクティブ

SSLCacheEnable ディレクティブは、外部 SSL セッション ID キャッシュを使用可能にします。
名前 説明
構文 SSLCacheEnable
有効範囲 物理 Apache サーバー・インスタンスごとに 1 つ (仮想ホスト・スタンザの外部でのみ使用可能)
デフォルト なし
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 許可されません。
なし。
[Linux][AIX][z/OS][HP-UX][Solaris]

SSLCacheErrorLog ディレクティブ

SSLCacheErrorLog ディレクティブは、セッション ID キャッシュのファイル名を設定します。
名前 説明
構文 SSLCacheErrorLog /usr/HTTPServer/logs/sidd_logg
有効範囲 仮想ホスト外部でのサーバー構成
デフォルト なし
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 許可されません。
有効なファイル名。
[Linux][AIX][z/OS][HP-UX][Solaris]

SSLCachePath ディレクティブ

SSLCachePath ディレクティブは、セッション ID キャッシング・デーモンへのパスを指定します。 複数の ServerRoot ディレクティブや、1 つのインストール済み環境を共有する -d オプションを使用した、複数の IHS のインスタンスがある場合を除き、このディレクティブを指定する必要はありません。

前述のように代替のサーバー・ルートで複数の IHS インスタンスを使用している場合は、 このディレクティブを使用して、この IHS インスタンスが、デフォルトで使用される別々のサーバー・ルートではなく、 単一のインストール・ルートの bin/sidd バイナリーのパスを指すようにしてください。

複数のインスタンスが使用されている場合に、bin/sidd バイナリーをあちらこちらにコピーしたり、 このディレクティブで、サーバー・ルートにインストールされている bin/sidd 以外のものを指定したりする実用的な理由はありません。 同じバイナリーを共有する IHS インスタンス間で、このディレクティブの値を変える必要はありません。

名前 説明
構文 SSLCachePath /usr/HTTPServer/bin/sidd
有効範囲 仮想ホスト外部でのサーバー構成
デフォルト <server-root>/bin/sidd
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 許可されません。
有効なパス名。
[Linux][AIX][z/OS][HP-UX][Solaris]

SSLCachePortFilename ディレクティブ

ディレクティブは SSLCachePortFilename ディレクティブはサーバインスタンスとセッション ID キャッシュデーモン間の通信に使われる UNIX ドメインソケットのファイル名を設定します。 IBM HTTP Server の 2 つのインスタンスを同じインストール・ディレクトリーから実行し、両方のインスタンスが SSL 用に構成されている場合は、このディレクティブを設定する必要があります。 それ以外の場合、このディレクティブを設定する必要はありません。
名前 説明
構文 SSLCachePortFilename /usr/HTTPServer/logs/siddport
有効範囲 仮想ホスト外部でのサーバー構成
デフォルト このディレクティブが指定されないで、キャッシュが使用可能である場合、 サーバーは <server-root>/logs/siddport ファイルの使用を試行します。

注:

  • AIX®の場合、デフォルトは /usr/HTTPServer/logs/siddportです。
  • Solaris の場合、デフォルトは /opt/IBMHTTPD/logs/siddport です。
  • Windows NT では無効です。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 許可されません。
有効なパス名。 Web サーバーは、始動時にこのファイルを削除します。既存のファイル名を使用しないでください。
[Linux][AIX][z/OS][HP-UX][Solaris]

SSLCacheTraceLog ディレクティブ

SSLCacheTraceLog ディレクティブは、セッション ID トレース・メッセージが書き込まれるファイルを指定します。 このディレクティブがないと、トレースは使用不可になります。
名前 説明
構文 SSLCacheTraceLog /usr/HTTPServer/logs/sidd-trace.log
有効範囲 仮想ホスト外部でのサーバー構成
デフォルト なし。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 許可されません。
有効なパス名。
[AIX Solaris HP-UX Linux Windows]

SSLCheckCertificateExpiration

SSLCheckCertificateExpiration ディレクティブは起動時に、有効期限が切れている証明書または有効期限切れになる証明書があるかどうかを検査します。
名前 説明
構文 SSLCheckCertificateExpiration <i>days</i>|-1 ["no_expired"]
有効範囲 グローバル・サーバーまたは仮想ホスト。
デフォルト なし。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。

days パラメーターには、有効期限切れになる証明書のしきい値を日数で指定するか、-1 を入力してパラメーターを使用不可にします。

オプションの no_expired パラメーターについては、既に有効期限が切れている証明書を報告しないようにする場合に no_expired を指定します。

SSLCipherBan ディレクティブ

SSLCipherBan ディレクティブは、指定された暗号の 1 つを使用して クライアントが接続した場合、オブジェクトへのアクセスを拒否します。 この要求は、状況コード 403 で失敗します。
重要: このディレクティブは、子ディレクトリーに対して指定された場合、親ディレクトリーに対して指定されたディレクティブをオーバーライドしません。 代わりに、両方のディレクトリーが子ディレクトリーに適用されます。
名前 説明
構文 SSLCipherBan <cipher_specification>
有効範囲 ディレクトリー・スタンザごとに複数インスタンス。
デフォルト なし。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス ディレクトリー・スタンザごとに許可されます。 優先順位は、最初から最後への順序です。
値については、SSL 暗号仕様のトピックを参照してください。

SSLCipherRequire ディレクティブ

SSLCipherRequire ディレクティブは、指定された暗号の 1 つを使用して接続したクライアントに対してオブジェクトへのアクセスを制限します。 アクセスが拒否されると、この要求は「403」の状況コードで失敗します。
重要: このディレクティブは、子ディレクトリーに対して指定された場合、親ディレクトリーに対して指定されたディレクティブをオーバーライドしません。 代わりに、両方のディレクトリーが子ディレクトリーに適用されます。
名前 説明
構文 SSLCipherRequire <cipher_specification>
有効範囲 ディレクトリー・スタンザごとに複数インスタンス。
デフォルト なし。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス ディレクトリー・スタンザごとに許可されます。
値については、SSL 暗号仕様のトピックを参照してください。

SSLCipherSpec ディレクティブ

SSLCipherSpec ディレクティブを使用して、ハンドシェーク時にサポートされる SSL 暗号をカスタマイズできます。 SSL 暗号のセットおよび優先順位をカスタマイズできます。

分散プラットフォームでは、各プロトコルは順序付けられた暗号のリストを独自に持っています。 サポートされるプロトコルは SSL バージョン 2、SSL バージョン 3、TLS バージョン 1.0、TLS バージョン 1.1、および TLS バージョン 1.2 です。

z/OSでは、有効な暗号のリストは 2 つのみです。1 つは SSL バージョン 2 用で、もう 1 つはその他のプロトコル用です。 サポートされるプロトコルは SSL バージョン 2、SSL バージョン 3、TLS バージョン 1.0、および TLS バージョン 1.1 です。 TLS バージョン 1.2 は、OA39422 が適用された z/OS V1R13 またはそれ以降でサポートされています。

SSL Version 2 の暗号はデフォルトで暗号なしに設定されます。これはプロトコルが使用不可に設定されていることを意味します。 他のプロトコルはデフォルトで一連の SSL 暗号 (Null 暗号、エクスポート暗号、および強度の低い暗号を除く) に設定されます。

単一引数形式の SSLCipherSpec を使用すると、暗号はその暗号が有効なすべてのプロトコルで使用可能になります。 そのような変更が各プロトコルに対して初めて行われた際、プロトコルのデフォルト暗号は破棄されます。

複数引数形式の SSLCipherSpec を使用し、最初の引数として SSL プロトコル名 (または「 ALL」) を指定すると、以下のメリットを備えた拡張構文を使用できます。

  • SSLCipherSpec のオカレンスごとに複数の暗号をリストすることができます。
  • 暗号の名前の前に - を付けることにより、現在使用可能に設定されている暗号のセットから個々の暗号を削除できます。
  • 指定したプロトコルの暗号リストを初めて変更する際、暗号名の前に + を付けることにより、デフォルトの暗号を置き換えずに指定した暗号をデフォルトの暗号の最後尾に追加することができます。

プロトコル名に ALL を指定し、各暗号名に関して追加または削除を指定すると、その暗号が有効な各プロトコルに適用されます。

特殊なケースとして、SSLCipherSpec ALL NONE を使用して、すべての暗号リストの内容を単一のコマンドで削除できます。 デフォルトの暗号を使用したくない場合は常に、構成を開始する際にこのコマンドを使用することをお勧めします。

トラブルの回避: 以下の構文は、SSLCipherSpecディレクティブは、 PI73819より前の z/OS では異なります。 具体的には、SSLCipherSpecz/OS の PI73819 より前のディレクティブは、引数としてショート・ネームまたはロング・ネームのみを取ります。
注: 暗号は、ロング・ネームまたはショート・ネームのいずれかで指定できます。 ただし、暗号としてのショート・ネームの使用は、判読不能であり、SSL 仕様内の暗号に指定されたショート・ネームと一致しない場合があるため、推奨されません。 さらに、暗号のショート・ネームは、これ以上文書化されなくなります。
名前 説明
構文 SSLCipherSpec [protocol-name] [+|-]cipher-name [[+|-]cipher-name ...]
有効範囲 サーバー構成、仮想ホスト
デフォルト 何も指定されない場合、サーバーは使用可能なすべての暗号仕様 (Null 暗号、エクスポート暗号、および強度の低い暗号を除く) を使用します。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 許可されます。 優先順位は、最初から最後へ、初めから終わりへの順序です。
分散プラットフォーム上のプロトコル名の値

SSLv2, SSLv3, TLSv10, TLSv1.1,TLSv1.2, ALL

[9.0.5.2 以降]TLSv1.3

バージョン 9.0.5.2 以降では、リストされているすべてのプロトコル名の値 (TLSv1.3 を含む) がサポートされます。 バージョン 9.0.5.1 以前では、TLSv1.3 を除いて、リストされているすべてのプロトコル名の値がサポートされます。

z/OS でのプロトコル名の値 すべて
暗号名の値 値については、SSL 暗号仕様のトピックを参照してください。

例 1

ごく一部の暗号のみを選択したい場合、以下のように、最初にすべての暗号リストをリセットしてから必要な暗号を追加することをお勧めします。

# Delete all ciphers from the cipher lists 
SSLCipherSpec ALL NONE 
# Add a few specific ciphers 
SSLCipherSpec ALL +SSL_RSA_WITH_3DES_EDE_CBC_SHA 
SSLCipherSpec ALL +TLS_RSA_WITH_AES_256_CBC_SHA 

例 2

デフォルトの大部分を使用したい場合、以下のように、使用したくない暗号を、それらが含まれるリストから削除できます。

# Delete some specific ciphers from the protocols where they are valid 
SSLCipherSpec ALL -SSL_RSA_WITH_RC4_128_MD5
SSLCipherSpec ALL -SSL_RSA_WITH_RC4_128_SHA 

SSLClientAuth ディレクティブ

SSLClientAuth ディレクティブは、 使用するクライアント認証のモード (なし (0)、オプション (1)、または必須 (2)) を設定します。
名前 説明
構文 SSLClientAuth <level required> [crl]
有効範囲 仮想ホスト。
デフォルト SSLClientAuth none
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストごとに 1 つのインスタンス。
  • 0/None: クライアント証明書は要求されていません。
  • 1/Optional: クライアント証明書は要求されていますが、必要ではありません。
  • 2/Required: 有効なクライアント証明書が必要です。
  • Required_reset: サーバーはすべてのクライアントから有効な証明書を要求します。使用可能な証明書がない場合、サーバーはクライアントに SSL アラートを送信します。 このアラートにより、クライアントは SSL の障害がクライアント証明書に関するものであることを理解します。またブラウザーは以降のアクセスに関するクライアント証明書情報を求めて再度プロンプトを出します。 このオプションには、 IBM Global Security Kit (GSKit) バージョン 7.0.4.19 以降、または z/OS V1R8 以降が必要です。
    重要: 数値オプションは指定されていないため、既存のオプションとは異なります。
  • CRL: SSL 仮想ホスト内で証明書失効リスト (CRL) をオン/オフにします。 CRL を使用する場合は、 SSLClientAuthの 2 番目の引数として crl を指定する必要があります。 例: SSLClientAuth 2 crlcrl を指定しなければ、SSL 仮想ホスト内で CRL を実行することができません。
  • noverify: クライアントが提供する証明書が検証に失敗した場合 (証明書の有効期限が切れている、または取り消されているなど) にでも、SSL ハンドシェークを成功させて接続を確立できるようにします。 このディレクティブとともに SSLClientAuthVerify を使用して、デフォルトのブラウザー・エラー・メッセージの代わりに分かりやすい Web ページを提供してください。 このオプションは Optional とともにのみ有効です。 無効なクライアント証明書による接続で受信した要求を失敗させるには、SSLClientAuthVerify を使用します。

0/None を指定した場合、CRLオプションは使用できない。

Required_reset サーバーはすべてのクライアントに対して有効な証明書を要求し、使用可能な証明書がない場合は SSL の警告をクライアントに送信します。 これにより、クライアントは SSL の障害がクライアント証明書に関するものであることを理解します。またブラウザーは以降のアクセスに関するクライアント証明書情報を求めて再度プロンプトを出します。 このオプションには、 IBM Global Security Kit (GSKit) バージョン 7.0.4.19 以降、または z/OS V1R8 以降が必要です。
CRL 処理
  • CRL 処理では、追加で SSLCRLHostnameSSLCRLPort、および SSLCRLUserIDを指定する必要があります。 これらのディレクティブは、証明書失効検査に使用される LDAP ベースの CRL サーバーを識別するために使用されます。
  • [AIX Solaris HP-UX Linux Windows]SSLCRLHostnameSSLCRLPortSSLCRLUserID を使用して CRL サーバーを静的に構成すると、クライアント証明書チェーン内の任意の LDAP または HTTP CRLDistributionPoint に対するチェックも有効になります。
  • [AIX Solaris HP-UX Linux Windows]SSLCRLHostnameが特別な値 URI を持つ場合、 SSLCRLPortと SSLCRLUserID は無視される。 クライアント証明書チェーンから照会されるのは、 CRLDistributionPoint URIのみです。
重要: 場合によっては、失効データのソースであるバックエンド・サーバーが使用できないために、 IBM HTTP Server がクライアント証明書の失効状況を判別できないことがあります。 以下のことに留意してください。
  • 証明書が CertificateDistributionPoint または AIA 拡張の LDAP または HTTP URI 形式を使用する場合、 IBM HTTP Server システムがこのタイプの発信接続を確立できることを確認する。
  • [AIX Solaris HP-UX Linux Windows]ディレクティブは SSLUnknownRevocationStatus ディレクティブは、 IBM HTTP Server がバックエンドサーバと通信しているときに回復可能なエラーが発生し、 IBM HTTP Server が証明書の失効ステータスを判断できない場合のために用意されています。 デフォルト動作では、バックエンド・サーバーが証明書の失効を正常に示すことができるまで、ハンドシェーク処理を続行します。
  • [z/OS]明示的に構成された LDAP サーバー のみで CRL の照会を行うことができます。また、バックエンド・サーバーと接続できない場合、 SSL ハンドシェークを行うことはできません。

SSLClientAuthGroup ディレクティブ

SSLClientAuthGroup ディレクティブでは、 特定のクライアント証明書の属性および値のペアのセットを含む名前付き式グループを定義します。 この名前付きグループは SSLClientAuthRequire ディレクティブで使うことができます。 証明書は、サーバーが保護されたリソースへのアクセスを許可する前に、 クライアント (この式を渡す) によって提供される必要があります。

名前 説明
構文 SSLClientAuthGroup グループ名 属性表現
有効範囲 サーバー構成、仮想ホスト
デフォルト なし。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 許可されます。
オーバーライド なし。
AND、OR、NOT、および括弧を用いてリンクされた属性検査で構成された論理式。 以下に例を示します。
SSLClientAuthGroup IBMUSpeople (Org
=  IBM) AND (Country = US)

次のセクションでは、 有効な論理式を用いた例の説明を提供します。 例えば、 SSLClientAuthGroup ((CommonName = "Fred Smith") OR (CommonName = "John Deere")) AND (Org = IBM) は、クライアント証明書に Fred Smith または John Deere の共通名が含まれ、組織が IBMでない限り、オブジェクトが提供されないことを示します。 属性検査で有効な比較は、等号と不等号 (= および! =) のみです。 各属性チェックは、AND、OR、または NOT (& &、| |、および!) を使用してリンクすることができます。 AND、OR、または NOT で関連付けた比較はいずれも括弧で囲む必要があります。 属性の値に非英数字が含まれる場合、 値を引用符で区切る必要があります。

以下のリストは、このディレクティブに指定できる属性値を示しています。
表 1. SSLClientAuthGroup ディレクティブの属性値 以下の表に、各属性値をロング・ネームとショート・ネームでリストします。
ロング・ネーム ショート・ネーム
CommonName CN
Country C
Email E
IssuerCommonName ICN
IssuerEmail IE
IssuerLocality IL
IssuerOrg IO
IssuerOrgUnit IOU
IssuerPostalCode IPC
IssuerStateOrProvince IST
Locality L
Org O
OrgUnit OU
PostalCode 「PC」
StateOrProvince ST

ロング・ネームまたはショート・ネームは、このディレクティブで使用できます。

ユーザーは、特定クライアント証明書の属性の論理式を指定します。 クライアント証明書の属性値のグループを指定する必要がある場合は、複数の式に対して AND、OR、または NOT を論理的に使用します。 AND、OR、または NOT で関連付けた比較はいずれも括弧で囲む必要があります。 有効な演算子には =!= がある。 以下に例を示します。
SSLClientAuthGroup IBMpeople Org = IBM)
または
SSLClientAuthGroup
NotMNIBM (ST != MN) && (Org = IBM) 

グループ名には、スペースを入れることはできません。 詳しくは、 SSLClientAuthRequire ディレクティブを参照してください。

SSLClientAuthRequire ディレクティブ

SSLClientAuthRequire ディレクティブでは、 サーバーが保護リソースへのアクセスを許可する前に、属性値、または属性値のグループを指定します。これらは、クライアント証明書に対して検証される必要があります。

名前 説明
構文 SSLClientAuthRequire 属性表現
有効範囲 サーバー構成、仮想ホスト
デフォルト なし。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 許可されます。 この関数は、これらのディレクティブを AND で結合します。
オーバーライド AuthConfig
AND、OR、NOT、および括弧を用いてリンクされた属性検査で構成された論理式。 以下に例を示します。
SSLClientAuthRequire (group != IBMpeople)
 && (ST = M)

受け取った証明書に特定の属性がない場合は、 属性の一致に対する検証がありません。 指定された一致する値が " "でも、属性がまったくない場合と同じであるとはかぎりません。 SSLClientAuthRequire ディレクティブで指定された属性はすべて、 証明書で利用できません。要求が拒否される原因となります。

以下のリストは、このディレクティブに指定できる属性値を示しています。
表 2. SSLClientAuthRequire ディレクティブの属性値 以下の表に、各属性値をロング・ネームとショート・ネームでリストします。
ロング・ネーム ショート・ネーム
CommonName CN
Country C
Email E
IssuerCommonName ICN
IssuerEmail IE
IssuerLocality IL
IssuerOrg IO
IssuerOrgUnit IOU
IssuerPostalCode IPC
IssuerStateOrProvince IST
Locality L
Org O
OrgUnit OU
PostalCode 「PC」
StateOrProvince ST

ロング・ネームまたはショート・ネームは、このディレクティブで使用できます。

ユーザーは、特定クライアント証明書の属性の論理式を指定します。 クライアント証明書の属性値のグループを指定する必要がある場合は、複数の式に対して AND、OR、または NOT を論理的に使用します。 AND、OR、または NOT で関連付けた比較はいずれも括弧で囲む必要があります。 有効な演算子には =!= がある。 また、 SSLClientAuthGroup ディレクティブを使用して設定されたグループ名を指定して、属性のグループを設定することもできます。

同じスコープ内で、複数の SSLClientAuthRequire ディレクティブを指定できます。 各ディレクティブの論理式は、証明書別にアクセス権の評価に使用され、個々の評価の結果は論理的に AND で結ばれます。 以下に例を示します。
SSLClientAuthRequire ((CommonName="John Doe") || (StateOrProvince=MN)) && (Org!=IBM)  
または
SSLClientAuthRequire (group!=IBMpeople) && (ST=MN)
ショート・ネームとロング・ネームは、引用符で囲むことができます。 以下に例を示します。
SSLClientAuthRequire (group!= IBMpeople) && ("ST= MN")
詳しくは SSLClientAuthGroup ディレクティブを参照してください。
[AIX Solaris HP-UX Linux Windows]
表 3. サブジェクト代替名 (SAN) TLS クライアント証明書拡張に関連する属性。 各属性には、SANDNSNAME0 や SANIPADDRESS3 のように、0 から 3 までの数字をサフィックスとして付ける必要があります。
属性プレフィックス 説明
SANDNSNAME DNS 名
SANIPADDRESS IP アドレス
SANRFC822NAME RFC822 名 (E メール)
SANDIRECTORYNAME ディレクトリー名
SANURI Universal Resource Identifier (URI)
[AIX Solaris HP-UX Linux Windows]注: アトリビュートとして利用できるのは、各エクステンション・タイプの最初の4つの値のみです。 より複雑なニーズについては、 クライアント証明書環境変数表現パーサ・サポートを参照のこと。

SSLClientAuthVerify ディレクティブ

SSLClientAuthVerify ディレクティブは、クライアント証明書を受信したがその検証に失敗した場合 (有効期限が切れている、または取り消されているなど) に、IBM HTTP Server が要求を失敗させるかどうかを制御します。

名前 説明
構文 SSLClientAuthVerify statuscode|OFF
有効範囲 グローバル・サーバーまたは仮想ホスト。
デフォルト 500
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス ディレクトリー・スタンザごとに 1 つのインスタンス。
HTTP 応答状況コード、または OFF

このディレクティブは、SSLClientAuth Optional Noverify とともに使用して、デフォルトのブラウザー・エラー・メッセージの代わりに分かりやすい Web ページを提供します。

仮想ホストを SSLClientAuth Optional Noverify で構成する場合、クライアント証明書を受信したがその検証に失敗した場合 (有効期限が切れている、または取り消されているなど)、SSL 接続は確立されます。

その接続で受信した要求を特定のエラー・コードで失敗させるために、このディレクティブを Location または Directory などのコンテキストで使用します。OFF を設定すると通常に処理されます。

その状況に関するカスタムのエラー文書を提供することにより、管理者はユーザーに提示するページを制御することができます。例えばユーザーに対して証明書が無効であることを伝え、詳しい指示を与えることができます。

また、エラー文書が同じ仮想ホスト内の別の URL への内部リダイレクトである場合は、それが即座に失敗しないように、URL は必ずそのコンテキスト内に SSLClientAuthVerify OFF を持つ必要があります。 以下に、このシナリオの例を示します。

指定されたステータスコードは、 HTTP で有効で、 IBM HTTP Server で既知の応答ステータスでなければならない。 値は 100 から 599 の間で、一般に RFC または標準提案で定義されています。 不確かな場合は、状況コードをテスト構成で試行し、apachectl -t を使用してその状況コードが有効かどうかを確認してください。 使われていないコードで有効かつ適切な選択肢としては他に、418、419、420、および 421 があります。

クライアント証明書が無効であったため、エラー文書はクライアント証明書についての情報を含む環境変数をいずれも利用できません。 クライアント証明書の検証が失敗した原因は、SSL_LAST_VALIDATION_ERROR の環境変数で入手できます。 変数は GSKVAL_ERROR_REVOKED_CERT または GSKVAL_ERROR_CERT_EXPIRED になります。 証明書に複数の検証問題がある場合、報告される原因は多くの場合 GSKVAL_ERROR_CA_MISSING_CRITICAL_BASIC_CONSTRAINT です。

クライアント証明書の検証が失敗するたびに、2 つのメッセージが loglevel Error でエラー・ログに記録されます。 2 番目のメッセージに原因が含まれます。以下に例を示します。

[Tue Jun 08 08:54:25 2010] [error] [client 9.37.243.128] [9e44c28] [731] SSL0208E: SSL Handshake Failed, 
   証明書の妥当性検査エラー。 [9.37.243.128:60347 -> 9.37.243.67:443] [08:54:25.000223331]
[Tue Jun 08 08:54:25 2010] [error] [client 9.37.243.128] [9e44c28] [731] Certificate validation error 
   during handshake, last PKIX/RFC3280 certificate validation error was 
   GSKVAL_ERROR_CA_MISSING_CRITICAL_BASIC_CONSTRAINT 
   [9.37.243.128:60347 -> 9.37.243.67:443] [08:54:25.000223331]
以下は構成例です。
<VirtualHost *:443
SSLClientAuth Optional Noverify
<Location />
SSLClientAuthVerify 419
</Location>
ErrorDocument 419 /error419.html
<Location /error419.html>
SSLClientAuthVerify OFF
</Location>
</VirtualHost>

SSLCRLHostname ディレクティブ (非推奨)

SSLCRLHostname ディレクティブは、 TCP/IP 名、または証明書失効リスト (CRL) のデータベースがある LDAP サーバーのアドレスを指定します。

名前 説明
構文 <SSLCRLHostName <TCP/IP name or address>
有効範囲 グローバル・サーバーまたは仮想ホスト。
デフォルト デフォルトで使用不可です。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。
TCP/IP 名、または LDAP サーバーのアドレス

LDAP-based CRL リポジトリーを静的に構成するには、SSLCRLHostname ディレクティブを SSLCRLPort ディレクティブ、SSLCRLUserID ディレクティブ、および SSLStashfile ディレクティブと共に使用します。 明示的な CRLDistributionPoint X.509v3 証明書拡張が存在しないか、拡張で指定されたサーバーが応答しない (つまり、使用不可な) 場合にのみ、これらのディレクティブを使用して LDAP ベースの CRL リポジトリーを照会する必要があります。

証明書に CRLDistributionPoint 拡張が存在し、拡張で指定されたサーバーが応答する (つまり、使用可能な) 場合、CRLDistributionPoint に指定された LDAP サーバーは、これらのディレクティブを使用せずに匿名で照会されます。

SSLCRLPort ディレクティブ (非推奨)

SSLCRLPort ディレクティブは、証明書失効リスト (CRL) のデータベースがある場合、LDAP サーバーのポートを指定します。

名前 説明
構文 SSLCRL<port>
有効範囲 グローバル・サーバーまたは仮想ホスト。
デフォルト デフォルトで使用不可です。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。
LDAP サーバーのポート。デフォルトは 389 です。

LDAP-based CRL リポジトリーを静的に構成するには、SSLCRLPort ディレクティブを SSLCRLUserID ディレクティブ、SSLCRLHostname ディレクティブ、および SSLStashfile ディレクティブと共に使用します。 明示的 CRLDistributionPoint X.509v3 証明書の拡張子がないか、または拡張子で指定されたサーバーが応答しない (使用不可) 場合にのみ、LDAP-based CRL リポジトリーを照会するために、これらのディレクティブを使用することが必要です。

CRLDistributionPoint 拡張子が証明書にあり、拡張子で指定されたサーバーが反応する (使用可能な) 場合、CRLDistributionPoint で指定された LDAP サーバーはこれらのディレクティブを使用せずに匿名で照会されます。

SSLCRLUserID ディレクティブ (非推奨)

SSLCRLUserID ディレクティブは、証明書失効リスト (CRL) のデータベースがある LDAP サーバーに送信するユーザー ID を指定します。

名前 説明
構文 SSLCRLUserID <[prompt] <userid>
有効範囲 グローバル・サーバーまたは仮想ホスト。
デフォルト ユーザー ID を指定しないと、 デフォルトで anonymous に設定されます。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。
LDAP サーバーのユーザー ID。 プロンプト・オプションを使用して、LDAP サーバーにアクセスするためのパスワードを求めるプロンプトが HTTP サーバーによって始動時に出されるようにします。

LDAP-based CRL リポジトリーを静的に構成するには、SSLCRLUserID ディレクティブを SSLCRLPort ディレクティブ、SSLCRLHostname ディレクティブ、および SSLStashfile ディレクティブと共に使用します。 明示的な CRLDistributionPoint X.509v3 証明書拡張が存在しないか、拡張で指定されたサーバーが応答しない (つまり、使用不可な) 場合にのみ、これらのディレクティブを使用して LDAP ベースの CRL リポジトリーを照会する必要があります。

CRLDistributionPoint 拡張子が証明書にあり、拡張子で指定されたサーバーが反応する (使用可能な) 場合、CRLDistributionPoint で指定された LDAP サーバーはこれらのディレクティブを使用せずに匿名で照会されます。

SSLDisable ディレクティブ

SSLDisable ディレクティブは、仮想ホストの SSL を使用不可にします。
名前 説明
構文 SSLDisable
有効範囲 グローバル・サーバーまたは仮想ホスト。
デフォルト デフォルトで使用不可です。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。
なし。

SSLEnable ディレクティブ

SSLEnable ディレクティブは、仮想ホストの SSL を使用可能にします。
重要: ディレクティブを特定の仮想ホスト構成に自動的にコピーしたくない場合は、このディレクティブを基本サーバー構成に指定しないでください。
名前 説明
構文 SSLEnable
有効範囲 グローバル・サーバーまたは仮想ホスト。
デフォルト デフォルトで使用不可です。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。
なし。

SSLFakeBasicAuth ディレクティブ

SSLFakeBasicAuth ディレクティブは、偽の基本認証のサポートを使用可能にします。

このサポートにより、クライアント証明書の識別名がユーザーおよびパスワード基本認証ペアのユーザ ー部分となることができます。 password をパスワードとして使用します。
重要: このディレクティブは、基本サーバー構成によってオーバーライドされる場合があります。
名前 説明
構文 SSLFakeBasicAuth
有効範囲 AuthName、AuthType、および必要なディレクティブと共に使用されるディレクトリー・スタンザ内。
デフォルト なし。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス ディレクトリー・スタンザごとに 1 つのインスタンス。
なし。
[AIX Solaris HP-UX Linux Windows]

SSLFIPSDisable ディレクティブ

SSLFIPSDisable ディレクティブは、連邦情報処理標準 (FIPS) を使用不可にします。
名前 説明
構文 SSLFIPSDisable
有効範囲 仮想およびグローバル。
デフォルト デフォルトで使用不可です。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。
なし。

SSLFIPSEnable ディレクティブ

SSLFIPSEnable ディレクティブは、連邦情報処理標準 (FIPS) を使用可能にします。

このディレクティブは、分散プラットフォームに適用可能です。

[z/OS]トラブルを避けてください: このディレクティブは z/OS プラットフォームでサポートされていますが、以下の制限があります。
  • ディレクティブはグローバル有効範囲でのみ有効です。
  • ディレクティブの値を変更する場合は、新しい値を有効にするために、 IBM HTTP Server を停止してから始動する必要があります。 再始動した場合、新しい値は有効になりません。
名前 説明
構文 SSLFIPSEnable
有効範囲 仮想およびグローバル。
デフォルト デフォルトで使用不可です。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。
なし。
重要: 値については、SSL 暗号仕様のトピックを参照してください。

SSLInsecureRenegotiation ディレクティブ

SSLInsecureRenegotiation ディレクティブは、安全でない (RFC5746 以前の) SSL 再ネゴシエーションを許可するかどうかを指定します。 SSL 再ネゴシエーションはいずれの種類も一般的ではなく、このディレクティブはデフォルト値の off から変更すべきではありません。

[AIX Solaris HP-UX Linux Windows]
重要: V8.0.0.1より前のバージョンでは、サーバーは RFC5746 サポートを備えており、セキュアな再ネゴシエーション要求を受け入れます。 V8.0.0.1 以降では、セキュア再ネゴシエーション要求を受け入れるためには、まず SSLRenegotiation ディレクティブを使用可能にする必要があります。

on を指定した場合、安全でない SSL 再ネゴシエーションが許可されます。 off を指定した場合 (デフォルト)、安全でない SSL 再ネゴシエーションは許可されません。

名前 説明
構文 SSLInsecureRenogotiation directive on|off
有効範囲 仮想ホスト
デフォルト off
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。
on|off
[9.0.5.16 以降]

SSLMinimumRSAKeySize ディレクティブ

この SSLMinimumRSAKeySize ディレクティブは主に、受信したクライアント証明書に最小の RSA 鍵サイズを強制するために使われます。 このディレクティブの動作は、プラットフォーム・セキュリティー・ライブラリーが提供する機能によって異なります。

名前 説明
構文 SSLMinimumRSAKeySize size
有効範囲 グローバルおよび仮想ホスト
デフォルト 0 (最小値なし)
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。
鍵サイズ (ビット) (2048 など)

[z/OS]鍵のサイズは、サーバーが受け取るクライアント証明書に強制される。 クライアント証明書の発行者は検査されません。

[AIX Solaris HP-UX Linux Windows]鍵のサイズは、 mod_ibm_ssl によって送受信されるすべての証明書(完全な証明書チェーンを含む)に対して強制される。 ロギング式および条件式では、環境変数 SSL_CLIENT_KEY_ALG( RSAEC_ecPublicKeyなど) および SSL_CLIENT_KEY_SIZE を使用します。

最小 RSA 鍵サイズが満たされていない場合、SSL ハンドシェークは失敗します。

[AIX Solaris HP-UX Linux Windows]

SSLPKCSDriver ディレクティブ

SSLPKCSDriver ディレクティブは、モジュールに対する完全修飾名、または PKCS11 デバイスへのアクセスに使用されるドライバーを識別します。

名前 説明
構文 Fully qualified name to module used to access PKCS11 device> モジュールがユーザー・パスに存在する場合は、モジュールの名前のみを指定します。
有効範囲 グローバル・サーバーまたは仮想ホスト。
デフォルト なし。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。
PKCS11 モジュールまたはドライバーのパスと名前。
各 PKCS11 デバイスのモジュールのデフォルト・ロケーションは、以下のとおりです。
  • nCipher
    • AIX: /opt/nfast/toolkits/pkcs11/libcknfast.so
    • HP: /opt/nfast/toolkits/pkcs11/libcknfast.sl
    • Solaris: /opt/nfast/toolkits/pkcs11/libcknfast.so
    • Windows: c:\nfast\toolkits\pkcs11\cknfast.dll
  • IBM 4758
    • AIX: /usr/lib/pkcs11/PKCS11_API.so
    • Windows: $PKCS11_HOME\bin\nt\cryptoki.dll
  • IBM e-business 暗号アクセラレーター
    • AIX: /usr/lib/pkcs11/PKCS11_API.so

SSLProtocolDisable ディレクティブ

SSLProtocolDisable ディレクティブを使用して、特定の仮想ホストに関してクライアントが使用できない SSL プロトコルを 1 つ以上指定することができます。 このディレクティブは <VirtualHost> コンテナの中になければなりません。

仮想ホスト用にサポートされたプロトコルは、別個にサポートされます。 サポートされたプロトコルがすべて使用不可の場合、クライアントは SSL ハンドシェークを完了することができません。

以下のデフォルトの TLS プロトコルがこのディレクティブに適用されます。
  • [AIX Solaris HP-UX Linux Windows][ 9.0.5.9 またはそれ以降]デフォルトのTLSプロトコルは TLSv12TLSv13
  • [z/OS][ 9.0.5.9 またはそれ以降]デフォルトのTLSプロトコルは TLSv12
  • 9.0.5.9、デフォルトのTLSプロトコルは TLSv10TLSv11TLSv12
名前 説明
構文 SSLProtocolDisable <protocolname>

サポートされるプロトコル名の値: SSLv2|SSLv3|TLSv10|TLSv11|TLSv12

[9.0.5.2 以降]TLSv13

バージョン 9.0.5.2 以降では、リストされているすべてのプロトコル名の値 (TLSv1.3 を含む) がサポートされます。 バージョン 9.0.5.1 以前では、TLSv1.3 を除いて、リストされているすべてのプロトコル名の値がサポートされます。

有効範囲 仮想ホスト
デフォルト 使用不可
重要: SSL バージョン 2 プロトコルは、他の方法ではデフォルトで無効になっています。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストごとに複数のインスタンスが許可されています。
以下の例は、仮想ホスト上で複数のプロトコルのサポートを使用不可にする方法を示しています。
<VirtualHost *:443> 
   SSLEnable 
   SSLProtocolDisable TLSv10
   # Any other directives ...
</VirtualHost>
重要: クライアントとサーバーが少なくとも 1 つのプロトコルと暗号の組み合わせを共有しない場合、SSL 接続の試行ごとに SSL0230I がログに記録されます。

SSLProtocolEnable ディレクティブ

SSLProtocolEnable ディレクティブを使用して、個々の SSL プロトコルを使用可能にすることができます。

以下のデフォルトの TLS プロトコルがこのディレクティブに適用されます。
  • [AIX Solaris HP-UX Linux Windows][ 9.0.5.9 またはそれ以降]デフォルトのTLSプロトコルは TLSv12TLSv13
  • [z/OS][ 9.0.5.9 またはそれ以降]デフォルトのTLSプロトコルは TLSv12
  • 9.0.5.9、デフォルトのTLSプロトコルは TLSv10TLSv11TLSv12
名前 説明
構文 SSLProtocolEnable <protocolname>

サポートされるプロトコル名の値: SSLv2|SSLv3|TLSv10|TLSv11|TLSv12

[9.0.5.2 以降]TLSv13

バージョン 9.0.5.2 以降では、リストされているすべてのプロトコル名の値 (TLSv1.3 を含む) がサポートされます。 バージョン 9.0.5.1 以前では、TLSv1.3 を除いて、リストされているすべてのプロトコル名の値がサポートされます。

有効範囲 仮想ホスト
デフォルト 設定解除
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストごとに複数のインスタンスが許可されています。

SSLProxyEngine ディレクティブ

SSLProxyEngine は、サーバーがプロキシー接続に SSL を使用するかどうかを設定します。 SSLProxyEngine on は、 ご使用のサーバーが SSL リソースにリバース・プロキシーとして機能している場合には必須です。
名前 説明
構文 SSLProxyEngine on|off
有効範囲 IP ベースの仮想ホスト。
デフォルト Off
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つ
on|off

SSLProxyCheckPeerCN ディレクティブ

SSLProxyCheckPeerCN はサーバがバックエンドサーバの証明書の "コモンネーム "がプロキシサーバが接続するように設定されているホスト名と一致することを検証するかどうかを切り替えます。
名前 説明
構文 SSLProxyCheckPeerCN on|off
有効範囲 仮想ホスト
デフォルト ON
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つ
on|off

SSLRenegotiation ディレクティブ

SSLRenrenegotiation ディレクティブは、Transport Layer Security (TLS) 再ネゴシエーションの IBM HTTP Server サポートを制御します。 このディレクティブは、IBM HTTP Server が許可する TLS 再ネゴシエーションのタイプを制御します。 TLS 再ネゴシエーションは、クライアントが既存のセキュア接続に新しい SSL ハンドシェークを開始する方法です。通常のブラウザー・ベースのクライアントがこれを使用することはほとんどありません。
名前 説明
構文 SSLRenegotiation on|off|LEGACY_AND_RFC5746
デフォルト Off
モジュール mod_ibm_ssl
Context 仮想ホスト
状況 extension
on|off|LEGACY_AND_RFC5746
OFF (デフォルト)
再ネゴシエーションが許可されていません。
ON
RFC5746 で現在定義されているように、セキュア再ネゴシエーションが許可されています。
LEGACY_AND_RFC5746
セキュア再ネゴシエーションと既存の安全でない再ネゴシエーションの両方が許可されています。
互換性
  • このディレクティブは、IBM HTTP Server 8.0 以降では SSLInsecureRenegotiation ディレクティブに優先します。
  • IBM HTTP Server 8.0.0.0 はデフォルトで ON に設定されます (RFC5746 再ネゴシエーションを受け入れます)。
  • 7.0.0.21 より前では、バンドルされた GSKit セキュリティー・ライブラリーは RFC5746 を認識しておらず、既存の安全でない再ネゴシエーションを参照して ON に設定されていました。
  • LEGACY_AND_RFC5746 オプションのサポートの有無は、IBM HTTP Server 7.0.0.21 以降であるかどうかによります。

SSLServerCert ディレクティブ

SSLServerCert ディレクティブは、 この仮想ホストで使用するサーバー証明書を設定します。
名前 説明
構文 SSLServerCert [prompt|certificate_label] certificate_label
有効範囲 IP ベースの仮想ホスト。
デフォルト None。ただし、SSL 鍵ストアには、デフォルト証明書についての独自の概念があります。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。
証明書ラベル。 /prompt オプションを使用して、暗号トークン・パスワードを求めるプロンプトが HTTP サーバーによって始動時に出されるようにします。 証明書ラベルの周囲では、区切り文字を使用しないでください。 ラベルが 1 行に収められていることを確認してください。 先行および末尾の空白は無視されます。
各 SSL 鍵ストア keyfile は、デフォルト証明書を指定する可能性があります。 このディレクティブは、鍵ストアのデフォルト以外の証明書を使用するようにサーバーを構成します。
  • デフォルト以外の証明書ラベルを選択するには、必要とするデフォルトではない証明書のラベルを値として持つ単一パラメーターを指定します。
  • 暗号トークンを使用するには、コロンで区切った暗号トークン名と証明書ラベル (mytoken:mylabel) を指定します。 オプションで、 SSLStashFileを使用する代わりに暗号トークン・パスワードを求めるプロンプトを対話式に出すには、最初のパラメーターとして /prompt を指定します。
  • ECDSA と RSA ベースの両方の証明書を構成するには、スペースで区切って 2 つの証明書ラベルを指定します。 クライアントが RSA ベースの証明書のみ、または ECDSA ベースの証明書のみをサポートする場合は、該当する証明書が選択されます。 クライアントが RSA と ECDSA の両方をサポートする場合、このディレクティブで最初に指定された certificate_label が、使用される証明書を決定します。
問題の回避: SSL 証明書ラベルを使用する場合は、以下の要件に注意する必要があります。
  • 1 つの証明書ラベルを指定する場合、以下の例のように、スペースを含むラベルは引用符で囲む必要があり、スペースをエスケープしないようにする必要があります。
    SSLServerCert "My Label"
  • 2 つの証明書ラベルを指定する場合、以下の例のように、スペースを含むラベルは引用符で囲む必要があり、スペースを円記号でエスケープする必要があります。
    SSLServerCert "My\ First\ Label", "My\ Second\ Label"

SSLStashfile ディレクティブ

SSLStashfile ディレクティブは、PKCS11 デバイスを開くための暗号化されたパスワードを格納しているファイルへのパスをファイル名と共に示します。

名前 説明
構文 SSLStashFile /usr/HTTPServer/mystashfile.sth
有効範囲 仮想ホストおよびグローバル・サーバー。
デフォルト なし。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。
sslstash コマンドで作成される LDAP stash ファイルまたは PKCS11 stash ファイルのファイル名。

SSLStashfile は、使用中の KeyFile の stash ファイルを指しません。この stash ファイルは、KeyFile の名前に基づいて自動的に計算され、異なるタイプの stash ファイルだからです。

IBM HTTP Serverの bin ディレクトリーにある sslstash コマンドを使用して、CRL または暗号デバイス stash ファイルを作成します。 sslstash コマンドを使用して指定するパスワードは、LDAP サーバーや暗号ハードウェアにログインする際に使用するパスワードと同じものにする必要があります。

sslstash コマンドが作成する stash ファイルは、多くの場合 CMS KeyFile (*.kdb) に付随する stash ファイルから完全に独立しています。 そのため、以下のことを確認してください。
  • sslstash コマンドの実行時に既存の *.sth ファイルを上書きしない。
  • sslstash コマンドの出力のファイル名として、CMS KeyFile (*.kdb) のファイル名と一致するものを選択しない。

使用方法:sslstash [-c] <directory_to_password_file_and_file_name> <function_name> <password>

ここで:
  • -c: 新規 stash ファイルを作成します。 指定しない場合、既存のファイルが更新されます。
  • File: 作成または更新するファイルの完全修飾名を表します。
  • Function: パスワードを使用する関数を示します。 有効な値には、crl または crypto があります。
  • Password: stash へのパスワードを表します。

LDAP-based CRL リポジトリーを静的に構成するには、SSLStashFile ディレクティブを SSLCRLPort ディレクティブ、SSLCRLHostname ディレクティブ、および SSLCRLUserID ディレクティブと共に使用します。 明示的 CRLDistributionPoint X.509v3 証明書の拡張子がないか、または拡張子で指定されたサーバーが応答しない (使用不可) 場合にのみ、LDAP-based CRL リポジトリーを照会するために、これらのディレクティブを使用することが必要です。

CRLDistributionPoint 拡張子が証明書にあり、拡張子で指定されたサーバーが反応する (使用可能な) 場合、CRLDistributionPoint で指定された LDAP サーバーはこれらのディレクティブを使用せずに匿名で照会されます。

SSLSuiteBMode

SSLSuiteBMode ディレクティブを使用して、それを囲んでいるタグの仮想ホストが TLS に Suite B プロファイルを使用するように構成することができます。

Suite B プロファイルにより、サーバーが使用可能な署名アルゴリズムと暗号の仕様が大幅に削減されます。 受け入れ可能なアルゴリズムと暗号のセットは、ある程度の期間が経過すると、関連する標準が変更されるのに伴って変わります。 引数の 128 および 192 は、RFC 6460 で説明している 2 つのセキュリティー・レベルをそれぞれ指しています。

このディレクティブを指定すると、直近で指定された SSL ディレクティブがオーバーライドされます。 SSLAttributeSet 設定は、このディレクティブより優先度が高いため、このディレクティブによってオーバーライドされません。 すべての Suite B プロファイルが、サーバーの証明書チェーンに強力な ECC 署名を使用することを要求しています。 RFC 6460 に、Suite B プロファイルの制約事項が文書化されています。

名前 説明
構文 SSLSuiteBMode
有効範囲 仮想ホスト
デフォルト 設定解除
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストごとに 1 つ
[9.0.5.16 以降]

SSLSupportedCurves

SSLSupportedCurves ディレクティブを使用すると、ハンドシェークが ECDHE 鍵交換を使用する環境で、サーバーが提供する曲線をカスタマイズすることができます。 クライアントとサーバーは、両サイドがサポートする名前付き曲線をネゴシエーションする必要があります。

名前 説明
構文 SSLSupportedCurves TLSv12|TLSv13 curve-list
有効範囲 グローバルおよび仮想ホスト
デフォルト
  • TLSv12: secp256r1, secp384r1, secp521r1
  • [AIX Solaris HP-UX Linux Windows]TLSv13: x25519, secp256r1, secp384r1, secp521r1, x448
  • [z/OS]TLSv13: x25519, secp256r1, secp384r1, secp521r1
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとのプロトコルごとに 1 つのインスタンス

SSLTrace ディレクティブ

SSLTrace ディレクティブは、 mod_ibm_ssl のデバッグ・ログインを使用可能にします。 LogLevel ディレクティブと一緒に使用します。 mod_ibm_sslでデバッグ・ロギングを有効にするには、 mod_ibm_sslLoadModule ディレクティブの後に、 LogLevel を設定してデバッグを行い、 SSLTrace ディレクティブを IBM HTTP Server 構成ファイルのグローバル・スコープに追加します。 このディレクティブは通常、 mod_ibm_sslで疑わしい問題を調査する際に、 IBM サポートの要求に応じて使用されます。 通常の作動状態でこのディレクティブを使用可能にすることは推奨されていません。

名前 説明
構文 SSLTrace
有効範囲 グローバル
デフォルト mod_ibm_ssl のデバッグ・ログインは使用不可になっています
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 無視
なし
注意: LogLevel 指令も参照のこと。
[AIX Solaris HP-UX Linux Windows]

SSLUnknownRevocationStatus

ディレクティブは SSLUnknownRevocationStatus ディレクティブは、 IBM HTTP Server が CRL や OCSP から来る失効ステータスを容易に判断できないときに、 IBM HTTP Server がどのように反応するかを指定します。

名前 説明
構文 SSLUnknownRevocationStatus ignore | log | log_always | deny
有効範囲 仮想ホスト
デフォルト ignore
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストごとに 1 つのインスタンスが許可されています
ignore
ハンドシェークが完了した際に失効状況が不明な場合、デバッグ・レベルのメッセージを発行するように指定します。 このメッセージは SSL セッション再開時には再発行されません。
ログ
ハンドシェークが完了した際に失効状況が不明な場合、警告レベルのメッセージを発行するように指定します。 このメッセージは SSL セッション再開時には再発行されません。
log_always
ハンドシェークが完了した際に失効状況が不明な場合、警告レベルのメッセージを発行するように指定します。 IBM HTTP Server は、後続のハンドシェークに対して同じメッセージを発行します。
deny
ハンドシェークが完了した際に失効状況が不明で、セッションを再開できずに HTTPS 接続がただちにクローズされる場合、警告レベルのメッセージを発行するように指定します。 IBM HTTP Server は、その後のハンドシェイクでも同じメッセージを報告する。
サポートされている設定 UnknownRevocationStatusのメッセージがログに記録されるたびに、SSL内部環境変数である SSL_UNKNOWNREVOCATION_SUBJECT 変数が設定されます。 以下の構文でこの変数をログに記録できます。
%{SSL_UNKNOWNREVOCATION_SUBJECT}e
SSLUnknownRevocationStatus ディレクティブの値が deny 以外の場合、mod_rewrite 式で変数を使用することもできます。 以下の変数名を使用します。
%{ENV:SSL_UNKNOWNREVOCATION_SUBJECT}

SSLV2Timeout ディレクティブ

SSLV2Timeout ディレクティブは、SSL バージョン 2 セッション ID のタイムアウトを設定します。

名前 説明
構文 SSLV2Timeout 60
有効範囲 グローバル・ベースおよび仮想ホスト。
デフォルト 40
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。
0 から 100 (秒)。

SSLV3Timeout ディレクティブ

SSLV3Timeout ディレクティブは、SSL バージョン 3 および TLS のセッション ID のタイムアウトを設定します。 SSL セッションが再利用された場合、キャッシュされた SSLセッションの有効期間はリセットされません。

名前 説明
構文 SSLV3Timeout 1000
有効範囲 グローバル・ベースおよび仮想ホスト。

[Windows]仮想ホストの有効範囲またはグローバル有効範囲が適用されます。

[Linux][AIX][HP-UX][Solaris]バーチャルホストスコープが適用されるのは、 SSLCacheDisable ディレクティブも使用している場合です。 それ以外の場合は、グローバル有効範囲のみが使用されます。

デフォルト 120
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス 仮想ホストおよびグローバル・サーバーごとに 1 つのインスタンス。
0 から 86400 (秒)。

SSLVersion ディレクティブ

SSLVersion ディレクティブを使用すると、指定されたバージョン以外の SSL プロトコルでクライアントが接続した場合に、403 応答でオブジェクトのアクセスを拒否します。

特定の SSL プロトコル・バージョンを確実に使用するには、ほとんどの場合、SSLVersion ディレクティブよりも SSLProtocolDisable ディレクティブの選択が適しています。 SSLProtocolDisable ディレクティブを使用すると、クライアント・ブラウザーは、可能であれば別のプロトコル・バージョンとネゴシエーションすることができます。一方、 SSLVersion ディレクティブを使用すると、 IBM HTTP Server は 403 応答を送信するため、ユーザーを混乱させる可能性があります。

名前 説明
構文 SSLVersion ALL
有効範囲 ディレクトリー・スタンザごとに 1 つ。
デフォルト なし。
モジュール mod_ibm_ssl
構成ファイル内の複数インスタンス <Directory> または <Location> スタンザごとに 1 つのインスタンス。

サポートされる値: SSLv2|SSLv3|TLSv10|TLSv11|TLSv12

[9.0.5.2 以降]TLSv13

バージョン 9.0.5.2 以降では、リストされているすべての値 (TLSv1.3 を含む) がサポートされます。 バージョン 9.0.5.1 以前では、TLSv1.3 を除いて、リストされているすべての値がサポートされます。