Cosminexus V9 アプリケーションサーバ Cosminexus HTTP Server
コンテンツへのアクセスが,ユーザ認証(AuthUserFile,Requireディレクティブなどを指定)とホスト名またはIPアドレス(Allow from,Deny fromディレクティブなどを指定)の両方によって制限されている場合にその関係を設定します。
any:そのどちらかの条件を満たしていれば,コンテンツへのアクセスを許可します。
all:そのどちらの条件も満たさなければ,コンテンツへのアクセスを禁止します。
<Directory>,.htaccess
指定されたメソッドによるリクエストがあった場合にCGIスクリプト名で示すスクリプトを実行します。
httpsd.conf,<VirtualHost>,<Directory>
Script POST /cgi-bin/search
WebブラウザからURLで指定されたCGIプログラム実行のリクエストに対して,実行するCGIプログラムのあるディレクトリ名を指定します。
次のディレクティブ指定値と重複するURLは指定できません。
例えば,次のような指定はできません。
ScriptAlias /aaa/bbb/ C:/alias/ ProxyPass /aaa/ http://aaa.example.com/
ディレクトリ名は,絶対パスで指定してください。
httpsd.conf,<VirtualHost>
ScriptAlias /cgi-bin/ "<Application Serverのインストールディレクトリ>/httpsd/cgi-bin/"
Webブラウザから指定されたCGIプログラム実行要求のURLが正規表現で記述した条件を満たす場合,指定した新パスのCGIプログラムを実行します。正規表現で括弧()を使用してグループ化している場合,そのi番目のグループの表現にマッチした文字列を,新パスで $iを使用して参照できます。iには1から9までの数字を指定します。
新パスは,絶対パスで指定してください。また,新パスの文字として,'$'または'&'を含める場合は,その文字の前に'\'を付加してください。なお,$iを指定する際には,'$'の前に'\'を付加する必要はありません。
次のディレクティブ指定値と重複する正規表現は指定できません。
例えば,次のような指定はできません。
ScriptAliasMatch ^/aaa/bbb/(.*) C:/alias/$1 ProxyPass /aaa/ http://aaa.example.com/
httpsd.conf,<VirtualHost>
ScriptAliasMatch ^/cgi-bin/(.*) "<Application Serverのインストールディレクトリ>/httpsd/cgi-bin/$1"
CGIスクリプトの実行に使用されるインタプリタを定義します。
registry:レジストリが検索され,拡張子に関連づけられているプログラムがインタプリタとして使用されます。
script:スクリプト内の#!行で指定されたインタプリタが使用されます。
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
FileInfoレベル
CGIスクリプトのエラーログ出力先のファイルを指定します。ファイル名には,絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。
UNIXの場合,指定するファイルは,Userディレクティブで指定したユーザの権限で書き込みができるようになっている必要があります。
httpsd.conf
〜((0−2147483647))《1024》(単位:バイト)
PUT,POSTメソッドによるリクエストのボディ部のログを採取する場合の最大値をバイト単位で指定します。ScriptLogディレクティブでエラーログ出力先のファイルを指定した場合だけ,この指定は有効になります。
このディレクティブでの指定値分の領域が,リクエスト処理中に確保されます。そのため,大きい値を指定すると,メモリ確保失敗となって,Webサーバが終了する場合があります。デフォルト値または必要最小限の値を指定することを推奨します。
httpsd.conf
〜((0−2147483647))《10385760》(単位:バイト)
CGIスクリプトのエラーログファイルの最大サイズをバイト単位で指定します。ScriptLogディレクティブでエラーログ出力先のファイルを指定した場合だけ指定が有効になります。
httpsd.conf
サーバ管理者のE-Mailアドレスを指定します。ServerSignatureディレクティブでE-Mailを指定する場合は,必ず指定してください。
httpsd.conf,<VirtualHost>
ServerAdmin www-admin@server.example.com
サーバ名に基づくバーチャルホストで使用するホスト名(ServerName)の別名を指定します。IPv6アドレスに対応したホスト名も指定できます。
<VirtualHost>
HTTP Serverのサーバ名およびポート番号を指定します。ポート番号を省略した場合は,Portディレクティブ指定値が設定されます。
サーバ名は,FQDN(完全修飾ドメイン名)またはIPアドレスで指定します。また,サーバ名には,IPv6アドレスまたはIPv6アドレスに対応したFQDNも指定できます。IPv6アドレスを指定し,かつポート番号を指定する場合は,IPv6アドレスを[ ]で囲んでください。
UseCanonicalNameディレクティブ指定値に従い,イメージマップの利用または末尾を/(スラッシュ)で閉じないディレクトリ指定のリクエストなど,Webサーバでリダイレクトが指示された場合のリダイレクト先としてLocationヘッダに設定されクライアントに返信されるため,クライアントからアクセスできるサーバ名を指定しなければなりません。このディレクティブの指定は必須です。
httpsd.conf,<VirtualHost>
ServerName www.example.com ServerName 2001::123:4567:89ab:cdef ServerName [2001::123:4567:89ab:cdef] ServerName [2001::123:4567:89ab:cdef]:8080
〜《/opt/hitachi/httpsd》 (UNIX版)
〜《<Application Serverのインストールディレクトリ>\httpsd》 (Windows版)
サーバのルートディレクトリを絶対パスで指定します。
httpsd.conf
ServerRoot "C:/Program Files/Hitachi/Cosminexus/httpsd"
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アドレスに対応したホスト名を表示できます。
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
ServerSignature On
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
httpsd.conf
ServerTokens Full
CGIスクリプトに任意の環境変数を渡す場合に設定する環境変数の値を指定します。このディレクティブを複数指定する場合,同じ環境変数に異なる値は指定できません。
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
FileInfoレベル
SetEnv MY_ENV myenv
クライアントからのリクエストを基に環境変数を定義します。クライアントからのリクエスト値が正規表現で表した条件を満たす場合,指定した環境変数を設定します。設定する値のデフォルト値は1です。環境変数の前に!が付いたときは,その環境変数の設定を解除します。
リクエスト値としては,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ディレクティブで設定してください。
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
FileInfoレベル
SetEnvIf User-Agent "Mozilla.*" SETENVIF_USER_AGENT=Mozilla
SetEnvIf Request_URI "\.(gif)|(jpg)$" request_is_image
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>
クライアントからのリクエストを基に環境変数を定義します。クライアントからのリクエスト値が正規表現で表した条件を満たす場合,指定した環境変数を設定します。設定する値のデフォルト値は1です。環境変数の前に!が付いたときは,その環境変数の設定を解除します。
リクエスト値に指定できる値については,SetEnvIfディレクティブを参照してください。
ただし,このディレクティブでは,正規表現の大文字,小文字の区別をしません。また,このディレクティブを複数指定する場合,同じリクエスト値は複数指定できません。
なお,リクエスト値にRemote_Hostを指定した場合,正規表現にはIPv6アドレスに対応したホスト名も指定できます。また,IPv6を使用した接続に対しては,Remote_AddrとServer_Addrのリクエスト値は使用できません。Remote_AddrとServer_Addrを使用したい場合は,HWSSetEnvIfIPv6ディレクティブで設定してください。
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
FileInfoレベル
指定した<Directory>またはアクセスコントロールファイルの範囲すべてのリクエストをハンドラ名で指定したハンドラに関連づける場合,指定します。ハンドラ名としてnoneを指定すると,それまでのSetHandlerディレクティブの設定が無効になります。
<Directory>,.htaccess
FileInfoレベル
指定した暗号種別でのアクセスを拒否し,クライアントにステータスコード403 Forbidden を応答します。暗号種別を次に示します。
暗号種別 | 鍵交換方式 | 認証方式 | 対称鍵暗号方式 | 暗号鍵サイズ(bit) | メッセージ認証アルゴリズム |
---|---|---|---|---|---|
RC4-MD5 |
RSA |
RSA |
RC4 |
128 |
MD5 |
RC4-SHA |
RSA |
RSA |
RC4 |
128 |
SHA |
AES128-SHA |
RSA |
RSA |
AES |
128 |
SHA |
AES128-SHA256 |
RSA |
RSA |
AES |
128 |
SHA256 |
DES-CBC3-SHA |
RSA |
RSA |
DES |
168 |
SHA |
AES256-SHA |
RSA |
RSA |
AES |
256 |
SHA |
AES256-SHA256 |
RSA |
RSA |
AES |
256 |
SHA256 |
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
FileInfoレベル
SSLでサーバ認証およびクライアント認証する場合,CA(認証局)の公開鍵(PEM形式)のファイル名を指定します。複数の証明書ファイルを連結させて,一つのファイルに複数の証明書が混在できます。
ファイル名は,絶対パスで指定してください。
httpsd.conf,<VirtualHost>
SSLCACertificateFile "<Application Serverのインストールディレクトリ>/httpsd/conf/ssl/cacert/anycert.pem"
SSLでサーバ認証およびクライアント認証する場合,CAの証明書(PEM形式)へのハッシュリンクを格納したディレクトリを指定します。ハッシュリンクの作成および運用方法については「5.2.6 ハッシュリンクの作成(UNIX版)(certutil certコマンド)」を参照してください。
クライアント証明書の検証をする場合にハッシュリンクが必要になります。取得したCAの証明書は,特定のディレクトリでハッシュリンクを作成し,このディレクトリをSSLCACertificatePathディレクティブに指定してください。
ディレクトリ名は,絶対パスで指定してください。
httpsd.conf,<VirtualHost>
SSLCACertificatePath /opt/hitachi/httpsd/conf/ssl/cacerts
SSLセション管理キャッシュサーバgcacheヘのパス名を指定します。パス名は絶対パスまたはServerRootディレクティブからの相対パスで指定できます。
httpsd.conf
SSLCacheServerPath /opt/hitachi/httpsd/sbin/gcache
〜((ポート番号を指定する場合は1−65535))
Webサーバ本体とSSLセション管理キャッシュサーバgcacheとの間でデータ交換するためのポート番号またはパス名を指定します。パス名は絶対パスまたはServerRootディレクティブからの相対パスで指定できます。
httpsd.conf
SSLCacheServerPort logs/gcache_port
〜《ServerRootディレクティブ指定値》
SSLセション管理キャッシュサーバgcacheが動作するパス名を指定します。gcacheがコアダンプを出力するディレクトリを指定するために使用します。パス名は絶対パスまたはServerRootディレクティブからの相対パスで指定できます。パス名に指定したディレクトリには,Userディレクティブに指定したユーザの読み込み権限,書き込み権限および実行権限が必要です。
httpsd.conf
SSLCacheServerRunDir /opt/hitachi/httpsd/logs
SSLで認証する場合,Webサーバの証明書(PEM形式)のファイル名を指定します。
ファイル名は,絶対パスで指定してください。
httpsd.conf,<VirtualHost>
SSLCertificateFile "<Application Serverのインストールディレクトリ>/httpsd/conf/ssl/server/httpsd.pem"
〜《SSLCertificateFileディレクティブ指定値》
SSLで認証する場合,Webサーバの秘密鍵のファイル名を指定します。
ファイル名は,絶対パスで指定してください。
httpsd.conf,<VirtualHost>
SSLCertificateKeyFile "<Application Serverのインストールディレクトリ>/httpsd/conf/ssl/server/httpsdkey.pem"
パスワード保護をされているサーバ秘密鍵のパスワードを格納しておくファイルのパス名を指定します。パスワード格納ファイルは,sslpasswdコマンドによって作成します。パス名は絶対パスまたはServerRootディレクティブからの相対パスで指定します。
httpsd.conf,<VirtualHost>
SSLクライアント認証時に使用するCRLの次回発行日の扱いについて指定します。
httpsd.conf,<VirtualHost>
SSLCRLAuthoritative On
CRLの次回発行日を過ぎている場合,そのCRLを発行したCAが発行した証明書を持つクライアントのアクセスはすべて拒否します。
DER形式のCRLを格納するディレクトリを絶対パスで指定します。指定したディレクトリに必要なCRLを格納して,Webサーバを起動または再起動すると,SSLでのクライアント認証時にCRLを適用できます。SSLCRLPEMPathディレクティブで指定したディレクトリ内のCRLも含め,同じCAから発行されたCRLを複数格納している場合,発行日が最新のCRLを適用します。ディレクトリ内にDER形式のCRL以外のファイルがある場合,Webサーバは起動しません。
httpsd.conf,<VirtualHost>
SSLCRLDERPath "<Application Serverのインストールディレクトリ>/httpsd/conf/ssl/crl/DER"
DER形式のCRLファイルを格納しているディレクトリを指定します。
PEM形式のCRLを格納するディレクトリを絶対パスで指定します。指定したディレクトリに必要なCRLを格納して,Webサーバを起動または再起動すると,SSLでのクライアント認証時にCRLを適用できます。SSLCRLDERPathディレクティブで指定したディレクトリ内のCRLも含め,同じCAから発行されたCRLを複数格納している場合,発行日が最新のCRLを適用します。ディレクトリ内にPEM形式のCRL以外のファイルがある場合,Webサーバは起動しません。
httpsd.conf,<VirtualHost>
SSLCRLPEMPath "<Application Serverのインストールディレクトリ>/httpsd/conf/ssl/crl/PEM"
PEM形式のCRLファイルを格納しているディレクトリを指定します。
SSLによるアクセスを禁止する場合に指定します。このディレクティブが指定されている場合,SSLEnableディレクティブでSSLを有効にしてもhttpsによるアクセスがステータスコード403 Forbiddenで拒否されます。SSLRequireSSLディレクティブの逆の動作をします。
httpsd.conf,<VirtualHost>,<directory>,.htaccess
FileInfoレベル
SSLを無効にします。デフォルト値はSSLEnableディレクティブ(SSLを有効)です。バーチャルホストで特定のホストに対してSSLを無効にする場合などに指定します。
httpsd.conf,<VirtualHost>
〜((0−9))《0》
SSLクライアント認証をする場合,環境変数SSL_CLIENT_CERT_CHAIN_nにクライアントの証明書を発行したCAからルートCAまでの証明書を設定するときに指定します。指定した値がnの最大値になります。このディレクティブはSSLExportClientCertificatesディレクティブを指定している場合だけ有効になります。指定された数のCA証明書がgcacheサーバへキャッシュされるため,CGIまたはServletで必要な数だけをこのディレクティブに指定することでキャッシュを有効に利用できます。ただし,メモリの制限でキャッシュされた一部の証明書が削除されて取得できなかった場合は,取得できたものだけを環境変数に設定します。
httpsd.conf,<VirtualHost>
「ルートCA−下位CA−クライアント証明書」という証明書チェーンの場合を説明します。この場合,環境変数と証明書の対応は次のようになります。
環境変数 | 証明書 |
---|---|
SSL_CLIENT_CERT | クライアント証明書 |
SSL_CLIENT_CERT_CHAIN_1 | 下位CAの証明書 |
SSL_CLIENT_CERT_CHAIN_2 | ルートCAの証明書 |
この環境変数と証明書チェーンをすべて取得するには,次のようにディレクティブを指定します。
SSLExportClientCertificates SSLExportCertChainDepth 2 2以上の値を指定します
SSLクライアント認証をする場合,環境変数SSL_CLIENT_CERTにクライアント証明書を設定するときに指定します。環境変数SSL_CLIENT_CERTにはDER形式の証明書をBase64エンコーディングした値を設定します。
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
SSLクライアント認証の機能と併せて,WebブラウザでユーザIDとパスワードを入力することなく,クライアント証明書の提示だけでBasic認証をできるようにします。AuthUserFileディレクティブで指定するファイルにはX509クライアント証明書のSubjectとパスワードを記述します。パスワードは,次に示す値で常に固定とします(どちらも"password"を暗号化したもの)。
httpsd.conf,<VirtualHost>
Subject: EMAIL=username@userhost,CN=username,OU=Software,O=HITACHI,L=Yokohama-shi,ST=Kanagawa,C=JP
この場合,AuthUserFileディレクティブで指定するファイルは次のように指定します。
LogFormatディレクティブのu指定ではSubjectがロギングされます。
認証に失敗した場合,ステータスコード401 Authorization Requiredを応答します。
〜《All》
使用するSSLプロトコルのバージョンを指定します。
httpsd.conf,<VirtualHost>
指定した暗号種別以外でのアクセスを拒否し,クライアントにステータスコード403 Forbidden を応答します。指定できる暗号種別は,SSLBanCipherディレクティブを参照してください。
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
FileInfoレベル
SSL通信で使用可能とする暗号種別を指定します。ディレクティブに指定した暗号種別とクライアントが使用できる暗号種別との間で一致するものがあれば,SSL通信が確立されHTTPリクエストを受信します。一致するものがない場合は,SSL通信は確立されないでHTTPリクエストを受信しません。指定できる暗号種別は,SSLBanCipherディレクティブを参照してください。
httpsd.conf,<VirtualHost>
SSLRequiredCiphers RC4-MD5:RC4-SHA:DES-CBC3-SHA:AES128-SHA:AES256-SHA
SSL以外によるアクセスを禁止する場合に指定します。このディレクティブが指定されている場合,SSLDisableディレクティブでSSLを無効にしてもhttpによるアクセスがステータスコード403 Forbiddenで拒否されます。異なるディレクティブの記述場所で,不用意にSSLを無効にしコンテンツを公開してしまうことを防止します。
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
FileInfoレベル
<VirtualHost 172.17.40.10:443> SSLDisable ... <Directory /secure/dir> SSLRequireSSL ... </Directory> </VirtualHost>
172.17.40.10ホストの443ポートに対するhttpアクセスは,/secure/dirディレクトリへのアクセスを除いてできます。/secure/dirディレクトリへのhttpアクセスは,ステータスコード403 Forbiddenを応答します。
〜((1−2147483647))《3600》(単位:秒)
Webサーバ内またはSSLセション管理キャッシュサーバgcache内で保持されるセションIDなどのデータの有効時間を秒単位で指定します。
グリニッジ標準時(GMT)の2038年1月19日3時14分7秒を超えないように,有効時間を設定してください。
httpsd.conf,<VirtualHost>
SSLSessionCacheTimeout 3600
〜((0−2147483647))《16777216》(単位:バイト)
UNIX版の場合,SSLセションを管理するキャッシュサーバgcache内のメモリにキャッシュされるセションIDなどのデータの,メモリサイズの上限値をバイト単位で指定します。0を指定した場合,gcacheサーバは起動しないで,セションキャッシュは実施されません。
Windows版の場合,セションキャッシュサイズの上限値をバイト単位で指定します。0を指定した場合,セションキャッシュは実施されません。
maxを指定した場合,上限を設定しません。1SSLセション当たり,サーバ認証だけする場合約200バイト,クライアント認証もする場合約1キロバイト使用します。
httpsd.conf
SSLSessionCacheSize 1024
〜((0−2147483647))《20480》(単位:バイト)
サーバプロセス内のメモリにキャッシュされるセションIDなどのデータの,メモリサイズの上限値をバイト単位で指定します。maxを指定した場合,上限を設定しません。
httpsd.conf
SSLSessionCacheSizePerChild 1024
〜《0》
クライアント認証時の証明書に関する設定を指定します。
0:証明書の要求をしません。
1:クライアントは証明書を提示できます。運用テスト用。
2:クライアントは証明書を提示しなければなりません。
httpsd.conf,<VirtualHost>
SSLVerifyClient 2
〜((0−10))《0》
証明書のチェーンを何段階までたどるかを指定します。
クライアント認証に使用するCA証明書のチェーンについて,認証チェックをする段階数を指定します。チェーンされたCAをどこまで信用するかを制限するために使用します。自己署名の証明書は認証しないため,段階数は2以上を指定します。例を次に示します。
httpsd.conf,<VirtualHost>
SSLVerifyDepth 10
〜((0−1024))《5》
Webサーバ起動時のサーバプロセス数を指定します。プロセス数に関連するほかのディレクティブについては,「4.1 HTTP Serverの処理とディレクティブとの関係」を参照してください。
httpsd.conf
StartServers 5
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.