6.2.7 Sで始まるディレクティブ
- 〈この項の構成〉
-
(1) Satisfy {any|all}
(a) 内容
コンテンツへのアクセスが,ユーザ認証(AuthUserFile,Requireディレクティブなどを指定)とホスト名またはIPアドレス(Allow from,Deny fromディレクティブなどを指定)の両方によって制限されている場合にその関係を設定します。
any:そのどちらかの条件を満たしていれば,コンテンツへのアクセスを許可します。
all:そのどちらの条件も満たさなければ,コンテンツへのアクセスを禁止します。
(b) 記述できる場所
<Directory>,.htaccess
(2) Script メソッド CGIスクリプト名
(a) 内容
指定されたメソッドによるリクエストがあった場合にCGIスクリプト名で示すスクリプトを実行します。
- 指定できるメソッド:GET,POST,PUT,DELETE
-
メソッドは大文字,小文字を区別します。
ただし,GETメソッドの場合,スクリプトは問い合わせ引数があるときだけ(例えば,/foo.html?bar)呼ばれます。
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>
(c) 指定例
Script POST /cgi-bin/search
(3) ScriptAlias URL ディレクトリ名
(a) 内容
WebブラウザからURLで指定されたCGIプログラム実行のリクエストに対して,実行するCGIプログラムのあるディレクトリ名を指定します。
次のディレクティブ指定値と重複するURLは指定できません。
-
AliasのURL
-
AliasMatchの正規表現
-
ProxyPassのパス名
-
Redirectの旧パス
-
RedirectMatchの正規表現
-
ScriptAliasMatchの正規表現
-
リダイレクタ定義ファイルのJkMountのURLパターン
例えば,次のような指定はできません。
ScriptAlias /aaa/bbb/ C:/alias/ ProxyPass /aaa/ http://aaa.example.com/
ディレクトリ名は,絶対パスで指定してください。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(c) 指定例
ScriptAlias /cgi-bin/ "<Application Serverのインストールディレクトリ>/httpsd/cgi-bin/"
(4) ScriptAliasMatch 正規表現 新パス
(a) 内容
Webブラウザから指定されたCGIプログラム実行要求のURLが正規表現で記述した条件を満たす場合,指定した新パスのCGIプログラムを実行します。正規表現で括弧()を使用してグループ化している場合,そのi番目のグループの表現にマッチした文字列を,新パスで $iを使用して参照できます。iには1から9までの数字を指定します。
新パスは,絶対パスで指定してください。また,新パスの文字として,'$'または'&'を含める場合は,その文字の前に'\'を付加してください。なお,$iを指定する際には,'$'の前に'\'を付加する必要はありません。
次のディレクティブ指定値と重複する正規表現は指定できません。
-
AliasのURL
-
AliasMatchの正規表現
-
ProxyPassのパス名
-
Redirectの旧パス
-
RedirectMatchの正規表現
-
ScriptAliasのURL
-
リダイレクタ定義ファイルのJkMountのURLパターン
例えば,次のような指定はできません。
ScriptAliasMatch ^/aaa/bbb/(.*) C:/alias/$1 ProxyPass /aaa/ http://aaa.example.com/
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(c) 指定例
ScriptAliasMatch ^/cgi-bin/(.*) "<Application Serverのインストールディレクトリ>/httpsd/cgi-bin/$1"
(5) ScriptInterpreterSource{ registry|script }
(a) 内容
CGIスクリプトの実行に使用されるインタプリタを定義します。
registry:レジストリが検索され,拡張子に関連づけられているプログラムがインタプリタとして使用されます。
script:スクリプト内の#!行で指定されたインタプリタが使用されます。
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(c) 上書き許可
FileInfoレベル
(6) ScriptLog ファイル名
(a) 内容
CGIスクリプトのエラーログ出力先のファイルを指定します。ファイル名には,絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。
UNIXの場合,指定するファイルは,Userディレクティブで指定したユーザの権限で書き込みができるようになっている必要があります。
(b) 記述できる場所
httpsd.conf
(7) ScriptLogBuffer バッファ数
〜((0−2147483647))《1024》(単位:バイト)
(a) 内容
PUT,POSTメソッドによるリクエストのボディ部のログを採取する場合の最大値をバイト単位で指定します。ScriptLogディレクティブでエラーログ出力先のファイルを指定した場合だけ,この指定は有効になります。
このディレクティブでの指定値分の領域が,リクエスト処理中に確保されます。そのため,大きい値を指定すると,メモリ確保失敗となって,Webサーバが終了する場合があります。デフォルト値または必要最小限の値を指定することを推奨します。
(b) 記述できる場所
httpsd.conf
(8) ScriptLogLength ファイルサイズ
〜((0−2147483647))《10385760》(単位:バイト)
(a) 内容
CGIスクリプトのエラーログファイルの最大サイズをバイト単位で指定します。ScriptLogディレクティブでエラーログ出力先のファイルを指定した場合だけ指定が有効になります。
(b) 記述できる場所
httpsd.conf
(9) SendBufferSize 送信バッファサイズ
〜((512−2147483647))《0》(単位:バイト)
(a) 内容
WebサーバのTCP送信バッファサイズをバイト数で指定します。0を指定した場合,OSのデフォルト値が使用されます。
高速のネットワーク環境では,OSのデフォルト値よりも大きな値を設定することで,レスポンス送信の性能が向上する場合があります。
(b) 記述できる場所
httpsd.conf
(c) 指定例
SendBufferSize 131072
(10) ServerAdmin E-Mailアドレス
(a) 内容
サーバ管理者のE-Mailアドレスを指定します。ServerSignatureディレクティブでE-Mailを指定する場合は,必ず指定してください。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(c) 指定例
ServerAdmin www-admin@server.example.com
(11) ServerAlias ホスト名 〔ホスト名 …〕
(a) 内容
サーバ名に基づくバーチャルホストで使用するホスト名(ServerName)の別名を指定します。IPv6アドレスに対応したホスト名も指定できます。
(b) 記述できる場所
<VirtualHost>
(12) ServerLimit プロセス数
〜((1-1000)))《16》
(a) 内容
MaxClientsディレクティブとThreadsPerChildディレクティブによって生成可能なサーバプロセス数を求めますが,そのサーバプロセス数を制限するために上限値を指定します。このディレクティブの指定値に従い,サーバ稼働情報を保持する共有メモリ領域を確保します。そのため,実際に動作するサーバプロセス以上の値を指定した場合,使用しない余分な共有メモリ領域を確保することになります。また,Webサーバが起動できないことや不安定になることがあるため,このディレクティブにはMaxClientsディレクティブの値をThreadsPerChildディレクティブの値で割った値と同じ値を指定することを推奨します。
このディレクティブは再起動で指定値を変更できません。指定値を変更する場合は,Webサーバを停止させたあとに起動させてください。
このディレクティブは,worker MPMを使用する場合に指定できます。
(b) 記述できる場所
httpsd.conf
(c) 指定例
ServerLimit 64
(13) ServerName サーバ名〔:ポート番号〕
(a) 内容
HTTP Serverのサーバ名およびポート番号を指定します。ポート番号を省略した場合は,Portディレクティブ指定値が設定されます。
サーバ名は,FQDN(完全修飾ドメイン名)またはIPアドレスで指定します。また,サーバ名には,IPv6アドレスまたはIPv6アドレスに対応したFQDNも指定できます。IPv6アドレスを指定し,かつポート番号を指定する場合は,IPv6アドレスを[ ]で囲んでください。
UseCanonicalNameディレクティブ指定値に従い,イメージマップの利用または末尾を/(スラッシュ)で閉じないディレクトリ指定のリクエストなど,Webサーバでリダイレクトが指示された場合のリダイレクト先としてLocationヘッダに設定されクライアントに返信されるため,クライアントからアクセスできるサーバ名を指定しなければなりません。このディレクティブの指定は必須です。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(c) 指定例
ServerName www.example.com ServerName 2001::123:4567:89ab:cdef ServerName [2001::123:4567:89ab:cdef] ServerName [2001::123:4567:89ab:cdef]:8080
(14) ServerPath パス名
(a) 内容
サーバ名に基づくバーチャルホストで,Hostヘッダの代わりにパス名を利用して各ホストに接続する場合に指定します。
(b) 記述できる場所
<VirtualHost>
(15) ServerRoot ディレクトリ名
〜《/opt/hitachi/httpsd》 (UNIX版)
〜《<Application Serverのインストールディレクトリ>\httpsd》 (Windows版)
(a) 内容
HTTP Serverのルートディレクトリを絶対パスで指定します。ここに指定した絶対パスはほかのディレクティブから,相対パス指定時の基点になります。
(b) 記述できる場所
httpsd.conf
(c) 指定例
ServerRoot "C:/Program Files/Hitachi/Cosminexus/httpsd"
(16) ServerSignature {On|Off|Email}
(a) 内容
Webサーバが作成するエラーメッセージなどのコンテンツのフッタに署名するかどうかを指定します。
On:ServerTokensディレクティブに従った文字列(「Cosminexus HTTP Server」やバージョン番号など)およびUseCanonicalNameディレクティブ指定値に従ったサーバ名とポート番号を表示します。
Cosminexus HTTP Server 09-00 at www.example.com Port 80
Off:コンテンツのフッタに署名を表示しません。
Email:Onを指定した場合の表示に加えServerAdminディレクティブの指定値をmailtoタグで追加します。
なお,Onを指定した場合,ServerNameディレクティブに指定したIPv6アドレスまたはIPv6アドレスに対応したホスト名を表示できます。
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(c) 指定例
ServerSignature On
(17) ServerTokens {Minimal|OS|Full|ProductOnly}
(a) 内容
HTTPレスポンスヘッダのServerヘッダのフォーマットを設定します。それぞれの設定によるServerヘッダの値を次に示します。OS種別には,Unix,Win32またはWin64が設定されます。Serverヘッダの値がどのように利用されるかはクライアントの仕様によります。
Minimal:Cosminexus HTTP Server バージョン番号
OS:Cosminexus HTTP Server バージョン番号(OS種別)
Full:Cosminexus HTTP Server バージョン番号(OS種別) 付加PPで設定された情報
ProductOnly:Cosminexus HTTP Server
(b) 記述できる場所
httpsd.conf
(c) 指定例
ServerTokens Full
(18) SetEnv 環境変数 値
(a) 内容
CGIスクリプトに任意の環境変数を渡す場合に設定する環境変数の値を指定します。このディレクティブを複数指定する場合,同じ環境変数に異なる値は指定できません。
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(c) 上書き許可
FileInfoレベル
(d) 指定例
SetEnv MY_ENV myenv
(19) SetEnvIf リクエスト値 正規表現 環境変数〔=値〕 〔環境変数〔=値〕 …〕
(a) 内容
クライアントからのリクエストを基に環境変数を定義します。クライアントからのリクエスト値が正規表現で表した条件を満たす場合,指定した環境変数を設定します。設定する値のデフォルト値は1です。環境変数の前に!が付いたときは,その環境変数の設定を解除します。正規表現で括弧()を使用してグループ化している場合,そのi番目のグループの表現にマッチした文字列を,値で$iを使用して参照できます。また,$0を使用することで正規表現にマッチした文字列全体を指定することが可能です。iには0から9までの数字を指定します。
リクエスト値としては,HTTPリクエストヘッダか次の表に示す値を指定できます。先に指定された環境変数をリクエスト値として指定することで環境変数の検査ができます。ただし,この場合の環境変数は,HTTPリクエストヘッダにも次の表に示す指定値にも一致していない必要があります。
リクエスト値 |
意味 |
---|---|
Remote_Addr |
クライアントのIPアドレス |
Remote_Host |
クライアントのホスト名(リクエストに設定されている場合だけ) |
Request_Protocol |
リクエストのプロトコル(HTTP/1.1 など) |
Request_Method |
リクエストのメソッド名(GET,POST,HEADなど) |
Request_URI |
リクエストのURI |
Server_Addr |
リクエストを受信したサーバのIPアドレス |
このディレクティブを複数指定する場合,同じリクエスト値は複数指定できません。
なお,リクエスト値にRemote_Hostを指定した場合,正規表現にはIPv6アドレスに対応したホスト名も指定できます。また,IPv6を使用した接続に対しては,Remote_AddrとServer_Addrのリクエスト値は使用できません。Remote_AddrとServer_Addrを使用したい場合は,HWSSetEnvIfIPv6ディレクティブで設定してください。
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(c) 上書き許可
FileInfoレベル
(d) 指定例
- (例1)
SetEnvIf User-Agent "Mozilla.*" SETENVIF_USER_AGENT=Mozilla
- (例2)
SetEnvIf Request_URI "\.(gif|jpg)$" request_is_image
- (例3)
-
IPv4を使用した接続のうち,特定のクライアントに対して環境変数を設定する場合は,次のように指定します。
Listen 123.123.123.123:80 Listen [2001::123:4567:89ab:cdef]:80 <VirtualHost 123.123.123.123:80> SetEnvIf Remote_Addr ^234\.234\.234\.234$ IPV4_CLIENT </VirtualHost>
- (例4)
-
Originヘッダの値がhttp://またはhttps://から始まり,test1.comまたはtest2.comを含む場合,環境変数ORIGINに正規表現にマッチした文字列全体を設定します。Originヘッダの値がhttp://xxx.xxx.test1.comの場合,環境変数ORIGINにhttp://xxx.xxx.test1.comが設定されます。
SetEnvIf Origin "^https?://(.*.test1.com|.*.test2.com)" ORIGIN=$0
(20) SetEnvIfNoCase リクエスト値 正規表現 環境変数〔=値〕 〔環境変数〔=値〕 …〕
(a) 内容
クライアントからのリクエストを基に環境変数を定義します。クライアントからのリクエスト値が正規表現で表した条件を満たす場合,指定した環境変数を設定します。設定する値のデフォルト値は1です。環境変数の前に!が付いたときは,その環境変数の設定を解除します。
リクエスト値に指定できる値については,SetEnvIfディレクティブを参照してください。
ただし,このディレクティブでは,正規表現の大文字,小文字の区別をしません。また,このディレクティブを複数指定する場合,同じリクエスト値は複数指定できません。
なお,リクエスト値にRemote_Hostを指定した場合,正規表現にはIPv6アドレスに対応したホスト名も指定できます。また,IPv6を使用した接続に対しては,Remote_AddrとServer_Addrのリクエスト値は使用できません。Remote_AddrとServer_Addrを使用したい場合は,HWSSetEnvIfIPv6ディレクティブで設定してください。
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(c) 上書き許可
FileInfoレベル
(21) SetHandler ハンドラ名
(a) 内容
指定した<Directory>またはアクセスコントロールファイルの範囲すべてのリクエストをハンドラ名で指定したハンドラに関連づける場合,指定します。ハンドラ名としてnoneを指定すると,それまでのSetHandlerディレクティブの設定が無効になります。
(b) 記述できる場所
<Directory>,.htaccess
(c) 上書き許可
FileInfoレベル
(22) SSLBanCipher 暗号種別 〔暗号種別 …〕
(a) 内容
指定した暗号種別でのアクセスを拒否し,クライアントにステータスコード403 Forbidden を応答します。
指定できる暗号種別は,SSLCipherSuiteディレクティブを参照してください。
TLSv1.2以前とTLSv1.3プロトコルの暗号種別を同時に指定できます。
このディレクティブを指定しない場合は,暗号種別でのアクセス拒否をしません。
(b) 記述できる場所
<Directory>,.htaccess
(c) 上書き許可
AuthConfigレベル
(23) SSLCACertificateFile ファイル名
(a) 内容
SSL機能を使用しクライアント認証する場合,CA(認証局)の証明書(PEM形式)のファイル名を指定します。複数の証明書ファイルを連結させて,一つのファイルに複数の証明書が混在できます。
ファイル名は,絶対パスで指定してください。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(c) 指定例
SSLCACertificateFile "<Application Serverのインストールディレクトリ>/httpsd/conf/ssl/cacert/anycert.pem"
(24) SSLCACertificatePath ディレクトリ
(a) 内容
SSL機能を使用しクライアント認証する場合,CAの証明書(PEM形式)へのハッシュリンクを格納したディレクトリを指定します。ハッシュリンクの作成および運用方法については「5.2.8 ハッシュリンクの作成(UNIX版)(openssl.sh x509コマンド)」を参照してください。
ディレクトリ名は,絶対パスで指定してください。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(c) 指定例
SSLCACertificatePath /opt/hitachi/httpsd/conf/ssl/cacerts
(25) SSLCARevocationCheck {none|leaf}
(a) 内容
証明書失効リスト(CRL)チェックをするかどうかを指定します。CRLのチェックをする場合は,SSLCARevocationFileディレクティブを指定する必要があります。
none:CRLのチェックをしません。
leaf:クライアント証明書について,CRLのチェックをします。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(26) SSLCARevocationFile ファイル名
(a) 内容
PEM形式のCRLを優先順に連結したファイルを絶対パスで指定します。これはクライアント認証時にCRLを適用したい場合に指定します。ただし,SSLCARevocationCheckにnoneを指定した場合は適用されません。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(c) 指定例
SSLCARevocationFile "<Application Serverのインストールディレクトリ>/httpsd/conf/ssl/crl/crl.pem"
PEM形式のCRLファイルを指定します。
(27) SSLCertificateFile ファイル名
(a) 内容
Webサーバの証明書を格納したファイル名を指定します。サーバ認証するためにWebサーバの証明書を先頭として,中間CA(認証局),ルートCAの順にCAの証明書を連結することができます。証明書はPEM形式です。
RSA暗号の証明書と楕円曲線暗号の証明書を指定する場合,別のファイルに分けて一つずつ指定できます。
ファイル名は,絶対パスで指定してください。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(c) 指定例
# RSA SSLCertificateFile "<Application Serverのインストールディレクトリ>/httpsd/conf/ssl/server/httpsd-rsa.pem" # ECC SSLCertificateFile "<Application Serverのインストールディレクトリ>/httpsd/conf/ssl/server/httpsd-ecc.pem"
(28) SSLCertificateKeyFile ファイル名
(a) 内容
Webサーバの秘密鍵のファイル名を指定します。秘密鍵のファイルはPEM形式です。RSA暗号の秘密鍵と楕円曲線暗号の秘密鍵を指定する場合,別のファイルに分けて一つずつ指定できます。
ファイル名は,絶対パスで指定してください。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(c) 指定例
# RSA SSLCertificateKeyFile "<Application Serverのインストールディレクトリ>/httpsd/conf/ssl/server/httpsdkey-rsa.pem" # ECC SSLCertificateKeyFile "<Application Serverのインストールディレクトリ>/httpsd/conf/ssl/server/httpsdkey-ecc.pem"
(29) SSLCipherSuite 〔TLSv1.3〕 暗号種別〔:暗号種別…〕
(a) 内容
SSL機能で使用可能とする暗号種別を指定します。ディレクティブに指定した暗号種別とクライアントが使用できる暗号種別との間で一致するものがあれば,SSL通信が確立されHTTPリクエストを受信します。一致するものがない場合は,SSL通信は確立されないでHTTPリクエストを受信しません。
TLSv1.3プロトコルの暗号種別を指定する場合,暗号種別の前にTLSv1.3を指定してください。TLSv1.3を指定しない場合は,TLSv1.2以前のプロトコルについての暗号種別の指定となります。このディレクティブを指定しない場合は,指定可能なすべての暗号種別が使用可能となります。
TLSv1.2以前のプロトコルで指定できる暗号種別を次に示します。
暗号種別 |
鍵交換方式 |
認証方式 |
対称鍵暗号方式 |
暗号鍵サイズ(bit) |
メッセージ認証アルゴリズム |
---|---|---|---|---|---|
AES128-SHA |
RSA |
RSA |
AES |
128 |
SHA |
AES128-SHA256 |
RSA |
RSA |
AES |
128 |
SHA256 |
AES256-SHA |
RSA |
RSA |
AES |
256 |
SHA |
AES256-SHA256 |
RSA |
RSA |
AES |
256 |
SHA256 |
AES128-GCM-SHA256 |
RSA |
RSA |
AES |
128 |
AEAD※ |
AES256-GCM-SHA384 |
RSA |
RSA |
AES |
256 |
AEAD※ |
ECDHE-RSA-AES128-SHA |
ECDH |
RSA |
AES |
128 |
SHA |
ECDHE-RSA-AES256-SHA |
ECDH |
RSA |
AES |
256 |
SHA |
ECDHE-RSA-AES128-SHA256 |
ECDH |
RSA |
AES |
128 |
SHA256 |
ECDHE-RSA-AES256-SHA384 |
ECDH |
RSA |
AES |
256 |
SHA384 |
ECDHE-RSA-AES128-GCM-SHA256 |
ECDH |
RSA |
AES |
128 |
AEAD※ |
ECDHE-RSA-AES256-GCM-SHA384 |
ECDH |
RSA |
AES |
256 |
AEAD※ |
ECDHE-ECDSA-AES128-SHA |
ECDH |
ECDSA |
AES |
128 |
SHA |
ECDHE-ECDSA-AES256-SHA |
ECDH |
ECDSA |
AES |
256 |
SHA |
ECDHE-ECDSA-AES128-SHA256 |
ECDH |
ECDSA |
AES |
128 |
SHA256 |
ECDHE-ECDSA-AES256-SHA384 |
ECDH |
ECDSA |
AES |
256 |
SHA384 |
ECDHE-ECDSA-AES128-GCM-SHA256 |
ECDH |
ECDSA |
AES |
128 |
AEAD※ |
ECDHE-ECDSA-AES256-GCM-SHA384 |
ECDH |
ECDSA |
AES |
256 |
AEAD※ |
- 注※
-
AEAD: Authenticated Encryption with Associated Data(認証付き暗号)
TLSv1.3プロトコルで指定できる暗号種別を次に示します。
暗号種別 |
鍵交換方式 |
認証方式 |
対称鍵暗号方式 |
暗号鍵サイズ(bit) |
メッセージ認証アルゴリズム |
---|---|---|---|---|---|
TLS_AES_128_GCM_SHA256 |
any |
any |
AES |
128 |
AEAD※ |
TLS_AES_256_GCM_SHA384 |
any |
any |
AES |
256 |
AEAD※ |
TLS_CHACHA20_POLY1305_SHA256 |
any |
any |
CHACHA20/POLY1305 |
256 |
AEAD※ |
TLS_AES_128_CCM_SHA256 |
any |
any |
AES |
128 |
AEAD※ |
TLS_AES_128_CCM_8_SHA256 |
any |
any |
AES |
128 |
AEAD※ |
- 注※
-
AEAD: Authenticated Encryption with Associated Data(認証付き暗号)
(b) 注意事項
SSLCipherSuiteディレクティブに指定できる暗号種別以外を含んでいる場合,TLSプロトコルのバージョンおよびHTTP Serverのバージョンによって起動時の動作が異なります。
-
TLSv1.3プロトコル(HTTP Server 11-20-09以前)の場合は起動エラーになります。
-
TLSv1.3プロトコル(HTTP Server 11-20-10以降)の場合は起動エラーになりません。
-
TLSv1.2以前のプロトコルの場合は起動エラーになりません。
HTTP/2プロトコル機能でTLSv1.2プロトコルを使用する場合は,次の暗号種別だけが使用できます。
-
ECDHE-RSA-AES128-GCM-SHA256
-
ECDHE-RSA-AES256-GCM-SHA384
-
ECDHE-ECDSA-AES128-GCM-SHA256
-
ECDHE-ECDSA-AES256-GCM-SHA384
(c) 記述できる場所
httpsd.conf,<VirtualHost>
(d) 指定例
- (例1)
SSLCipherSuite AES128-SHA256:AES256-SHA256
TLSv1.2以前のプロトコルで使用する暗号種別を指定します。
- (例2)
SSLCipherSuite TLSv1.3 TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
TLSv1.3プロトコルで使用する暗号種別を指定します。
(30) SSLEngine {On|Off}
(a) 内容
SSLを有効にするかどうかを指定します。デフォルトはSSL無効です。
<VirtualHost>ブロック内でSSLを有効にしたい場合,有効にしたい<VirtualHost>ブロック内でSSLEngine Onを指定してください。
On:SSLを有効にします。
Off:SSLを無効にします。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(31) SSLOptions 〔+|-〕オプション 〔〔+|-〕オプション …〕
(a) 内容
SSL機能を使用する場合のオプションを指定します。
+:オプションで指定した機能を有効にします。
-:オプションで指定した機能を無効にします。
オプション |
機能 |
---|---|
StdEnvVars |
CGI環境変数にSSL関連の標準の環境変数を設定します。環境変数の設定は性能に影響を与えるため,CGIでSSL関連の環境変数が必要な場合のみ,このオプションを有効にしてください。 |
ExportCertData |
CGI環境変数にSSL_SERVER_CERT,SSL_CLIENT_CERTおよびSSL_CLIENT_CERT_CHAIN_n(n = 0,1,2,...)を設定します。CGIでサーバおよびクライアント証明書の情報が必要な場合に指定します。 |
FakeBasicAuth |
SSLクライアント認証の機能と併せて,WebブラウザでユーザIDとパスワードを入力することなく,クライアント証明書の提示だけでBasic認証する場合に指定します。AuthUserFileディレクティブで指定するファイルにはX509クライアント証明書のSubjectとパスワードを記述します。パスワードは,常に"{SHA}W6ph5Mm5Pz8GgiULbPgzG37mj9g="固定とします("password"を暗号化したもの)。 openssl.sh x509 またはopenssl.bat x509 コマンドで表示する証明書のSubject フィールドの値 Subject: C = JP, ST = Kanagawa, L = Yokohama-shi, O = HITACHI, OU = Software, CN = username, emailAddress = username@userhost この場合AuthUserFileディレクティブで指定するファイルは次のように指定します。 /C=JP/ST=Kanagawa/L=Yokohama-shi/O=HITACHI/OU=Software/CN=username/emailAddress=username@userhost:{SHA}W6ph5Mm5Pz8GgiULbPgzG37mj9g= |
(b) 注意事項
+-を使用しないでオプションを指定すると,最後に指定したオプションだけが有効になります。
(c) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(d) 上書き許可
Optionsレベル
(e) 指定例
- (例1)
SSLOptions StdEnvVars SSLOptions FakeBasicAuth
このようにオプションに+-を指定しないディレクティブを2行指定した場合,あとに指定したFakeBasicAuthだけが有効となります。
- (例2)
SSLOptions StdEnvVars SSLOptions +FakeBasicAuth
このように+を指定したオプションを後に指定した場合,StdEnvVarsに加えてFakeBasicAuthも有効となります。
- (例3)
SSLOptions +StdEnvVars FakeBasicAuth
+-のないオプションを後に指定した場合,前に指定したオプションは無効になり,あとに指定したFakeBasicAuthだけが有効となります。
(32) SSLProtocol 〔+|-〕プロトコル名 〔〔+|-〕プロトコル名 …〕
〜《All》
(a) 内容
使用するSSLプロトコルのバージョンを指定します。
+: プロトコル名で指定したプロトコルを有効にします。
-: プロトコル名で指定したプロトコルを無効にします。
プロトコル名として設定できる値は次のとおりです。
TLSv1: TLSプロトコルバージョン1.0を使用する。
TLSv1.1: TLSプロトコルバージョン1.1を使用する。
TLSv1.2: TLSプロトコルバージョン1.2を使用する。
TLSv1.3: TLSプロトコルバージョン1.3を使用する。
All: 上記すべてのプロトコルを使用する。
(b) 注意事項
+-を使用しないでプロトコル名を指定すると,最後に指定したプロトコルだけが有効になります。連続したプロトコルバージョンを指定していない場合,古いプロトコルバージョンは無効になります。
(c) 記述できる場所
httpsd.conf,<VirtualHost>
(d) 指定例
- (例1)
SSLProtocol +TLSv1.2 +TLSv1.3
TLSv1.2とTLSv1.3が有効となります。
- (例2)
SSLProtocol +TLSv1 +TLSv1.2
連続したプロトコルを指定していない場合,後継のプロトコルTLSv1.2だけが有効となります。
- (例3)
SSLProtocol All -TLSv1
TLSv1.1,TLSv1.2,TLSv1.3が有効となります。
(33) SSLRequireSSL
(a) 内容
SSL以外によるアクセスを禁止する場合に指定します。このディレクティブが指定されている場合,httpによるアクセスがステータスコード403 Forbiddenで拒否されます。異なるディレクティブの記述場所で,不用意にSSLを無効にしコンテンツを公開してしまうことを防止します。
(b) 記述できる場所
<Directory>,.htaccess
(c) 上書き許可
AuthConfigレベル
(d) 指定例
<VirtualHost 172.17.40.10:443> SSLEngine Off ... <Directory /secure/dir> SSLRequireSSL ... </Directory> </VirtualHost>
172.17.40.10ホストの443ポートに対するhttpアクセスは,/secure/dirディレクトリへのアクセスを除いてできます。/secure/dirディレクトリへのhttpアクセスは,ステータスコード403 Forbiddenを応答します。
(34) SSLVerifyClient {none|optional|require}
(a) 内容
クライアント認証時の証明書に関する設定を指定します。
none:証明書の要求をしません。
optional:クライアントは証明書を提示できます。運用テスト用。
require:クライアントは証明書を提示しなければなりません。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(c) 指定例
SSLVerifyClient require
(35) SSLVerifyDepth 段階数
〜((0−10))《1》
(a) 内容
証明書のチェーンを何段階までたどるかを指定します。
クライアント認証に使用するCA証明書のチェーンについて,認証チェックをする段階数を指定します。チェーンされたCAをどこまで信用するかを制限するために使用します。クライアント証明書が自己署名の証明書の場合に0であるため,通常は段階数に1以上を指定します。例を次に示します。
- (例)
-
- 条件
-
-
CA1は,root CAに署名されている。
-
証明書1は,root CAに署名されている。
-
証明書2は,CA1に署名されている。
-
- SSLVerifyDepthの指定
-
この場合,証明書1,証明書2とも認証チェックをするためには,SSLVerifyDepthディレクティブに2以上を指定します。また,証明書1は認証チェックし,証明書2は認証チェックをしないようにするにはSSLVerifyDepthディレクティブに1を指定します。
(b) 記述できる場所
httpsd.conf,<VirtualHost>
(c) 指定例
SSLVerifyDepth 10