Hitachi Web Server
5.3.1 CRLのダウンロード
crldownload -b 検索ベースDN -L LDAPライブラリ名 -o ファイル名〔-a 属性〕〔-D バインドDN〕〔-h ホスト名〕〔-H〕〔-p ポート番号〕〔-w パスワード〕
|
- -b 検索ベースDN
CRLの格納されているエントリのDNを指定します。
- -L LDAPライブラリ名
使用するLDAPライブラリファイル名を指定します。
- -o ファイル名
CRLを出力するファイル名を指定します。
- -a 属性 〜《certificateRevocationList;binary》
CRLが格納されている属性を指定します。
- -D バインドDN
バインドするDNを指定します。省略した場合は,匿名バインドが実行されます。
- -h ホスト名 〜《localhost》
アクセスするLDAPサーバのホスト名,又はIPアドレスを指定します。
- -H
ヘルプを表示させる場合に指定します。このオプションは,ほかのオプションとは,併用できません。
- -p ポート番号 〜((1−65535))《389》
アクセスするLDAPサーバのポート番号を指定します。
- -w パスワード 〜《NULL》
バインドDNにバインドする場合に使用するパスワードを指定します。省略した場合は,パスワードを使用しません。
crldownloadユティリティの使用方法を次に示します。
図5-3 crldownloadユティリティの使用方法
- crldownloadユティリティで,CRLを格納しているエントリにアクセスします。
- エントリ内の属性からCRLを取得します。格納されているCRLがDER形式の場合,SSLCRLDERPathディレクティブで指定したディレクトリにダウンロードします。CRLがPEM形式の場合,SSLCRLPEMPathディレクティブで指定したディレクトリにダウンロードします。
- Webサーバを再起動します。
- クライアントは,SSLでアクセスしたときに証明書を送信します。
- クライアント証明書を認証するとき,取得したCRLを適用します。
- 認証に成功した場合には,コンテンツにアクセスできます。
- 注
- SSLCRLPEMPath,SSLCRLDERPathディレクティブで指定されたディレクトリ内に,不適切な形式のファイルがあった場合,Webサーバは起動しません。そのため,crldownloadツールを使用したときは,これらのディレクトリにCRLを格納する前に,正しい形式のCRLであるかどうかを確認してください。
(a) DER形式のCRLのダウンロード
次に示すスクリプトを実行してCRLをダウンロードします。このスクリプトのファイル名をUNIX版は/opt/hitachi/httpsd/sbin/hws_getCRL.sh,Windows版はC:\Program Files\Hitachi\httpsd\sbin\hws_getCRL.batとします。
- スクリプトの実行内容
LDAPサーバ内にDER形式で格納されているCRLをダウンロードし,Webサーバを再起動します。そのときに出力されたメッセージはログファイルに格納します。
- CRLの格納先ファイル名
- UNIX版
- /opt/hitachi/httpsd/conf/ssl/crl/DER/rootCA.crl
- Windows版
- C:\Program Files\Hitachi\httpsd\conf\ssl\crl\DER\rootCA.crl
- ログファイル名
- UNIX版
- /opt/hitachi/httpsd/logs/crl_log
- Windows版
- C:\Program Files\Hitachi\httpsd\logs\crl_log
- スクリプトの内容(UNIX版の場合)
#!/bin/sh
#########################################################################
## Hitachi Web Server
## All Rights Reserved. Copyright (C) 2001, Hitachi, Ltd.
#########################################################################
#parameters
LIB="/opt/hitachi/httpsd/libexec/libldapssl41.so"
HOST="ldap.server.hitachi.co.jp"
PORT="389"
BASE="cn=Company root CA, o=Hitachi, c=JP"
ATTR="certificateRevocationList;binary"
FILE="/opt/hitachi/httpsd/conf/ssl/crl/DER/rootCA.crl"
FORM="DER"
LOG="/opt/hitachi/httpsd/logs/crl_log"
TMP="/opt/hitachi/httpsd/conf/ssl/crl/tmp-rootCA.crl"
#download
TOOL="/opt/hitachi/httpsd/sbin/crldownload"
SSLC="/opt/hitachi/httpsd/sslc/bin/sslc"
HTTPSD="/opt/hitachi/httpsd/sbin/httpsdctl graceful"
LOGTIME=""
LANG=C
if `$TOOL -L $LIB -h $HOST -p $PORT -b "$BASE" -a "$ATTR" -o $TMP >> $LOG 2>&1`
then
ret=`$SSLC crl -in $TMP -inform $FORM -text 2>&1 | grep "nextUpdate="`
if [ x"$ret" != "x" ]
then
if `mv -f $TMP $FILE >> $LOG 2>&1`
then
$HTTPSD >> $LOG 2>&1
exit 0
else
LOGTIME=`date`
echo "[$LOGTIME] Moving $TMP to $FILE failed" >> $LOG
rm -f $TMP >> /dev/null 2>&1
fi
else
LOGTIME=`date`
echo "[$LOGTIME] CRL file format check failed" >> $LOG
rm -f $TMP >> /dev/null 2>&1
fi
else
LOGTIME=`date`
fi
echo "[$LOGTIME] Stop restarting Hitachi Web Server." >> $LOG
exit 1
|
- スクリプトの内容(Windows版の場合)
@echo off
REM ##############################################################################
REM ## All Rights Reserved. Copyright (c) 2002, Hitachi, Ltd.
REM ##############################################################################
REM #parameters
SETLOCAL
SET LIB="C:\Program Files\Hitachi\httpsd\libldap\nsldap32v50.dll"
SET HOST="ldap.server.hitachi.co.jp"
SET PORT="389"
SET BASE="cn=Company root CA, o=Hitachi, c=JP"
SET ATTR="certificateRevocationList;binary"
SET FILE="C:\Program Files\Hitachi\httpsd\conf\ssl\crl\DER\rootCA.crl"
SET FORM="DER"
SET LOG="C:\Program Files\Hitachi\httpsd\logs\crl_log"
SET TMPCRL="C:\Program Files\Hitachi\httpsd\conf\ssl\crl\tmp-rootCA.crl"
SET TMPSSL="C:\Program Files\Hitachi\httpsd\conf\ssl\crl\tmpssl"
REM #download
SET TOOL="C:\Program Files\Hitachi\httpsd\sbin\crldownload.exe"
SET SSLC="C:\Program Files\Hitachi\httpsd\sslc\bin\sslc.exe"
SET HTTPSD="C:\Program Files\Hitachi\httpsd\httpsd.exe"
%TOOL% -L %LIB% -h %HOST% -p %PORT% -b %BASE% -a %ATTR% -o %TMPCRL% >> %LOG% 2>&1 || GOTO ERR
%SSLC% crl -in %TMPCRL% -inform %FORM% -text 2>&1 | FIND "nextUpdate=" > %TMPSSL% || GOTO SSLERR
COPY %TMPCRL% %FILE% >> %LOG% 2>&1 || GOTO CPERR
DEL %TMPCRL% >> %LOG% 2>&1
DEL %TMPSSL% >> %LOG% 2>&1
%HTTPSD% -n "Hitachi Web Server" -k restart >> %LOG% 2>&1
GOTO TOOLEND
:CPERR
ECHO Moving %TMPCRL% to %FILE% failed >> %LOG%
DEL %TMPCRL% >> %LOG% 2>&1
DEL %TMPSSL% >> %LOG% 2>&1
GOTO ERR
:SSLERR
ECHO CRL file format check failed >> %LOG%
DEL %TMPCRL% >> %LOG% 2>&1
:ERR
ECHO Stop restarting Hitachi Web Server. >> %LOG%
:TOOLEND
endlocal
echo on
|
- スクリプトの実行方法(UNIX版の場合)
/opt/hitachi/httpsd/sbin/hws_getCRL.sh
|
- スクリプトの実行方法(Windows版の場合)
C:\> "C:\Program Files\Hitachi\httpsd\sbin\hws_getCRL.bat"
|
(b) 定期的なダウンロードとWebサーバの再起動
- UNIX版
スーパユーザ,又はスーパユーザから許可されたユーザはcrontabコマンド※を使用したCRLの定期的なダウンロードや,Webサーバの再起動ができます。
crontabコマンドにcrldownloadコマンド,又はcrldownloadコマンドを記述したスクリプトを実行する時間を指定して,定期的にCRLをダウンロードし,Webサーバを再起動します。
注※ OSコマンドの一つ。cronへのジョブの登録や制御をするときに使用します。詳細な指定方法は各OSマニュアルを参照してください。
- crontabコマンドの指定方法
# crontab -
分 時 日 月 曜日 コマンド
|
- 各crontabファイルエントリは,六つのフィールドから成る行で構成されます。各フィールドは,スペース又はタブで区切られ,それぞれ次に示す値を含みます。
- 分:コマンドを実行する分(0から59)
- 時:コマンド実行の時間(0から23)
- 日:コマンド実行の日(1から31)
- 月:コマンド実行の月(1から12)
- 曜日:コマンド実行の曜日(日曜日から土曜日までを示す0から6)
- コマンド:実行するシェルコマンド
- *(アスタリスク)は有効な値すべてを意味します。
- crontabコマンドの指定例
- 毎日,午前8時にCRLをダウンロードして,Webサーバを再起動する((a)のスクリプトを実行する)には,次のように指定します。
# crontab -
0 8 * * * /opt/hitachi/httpsd/sbin/hws_getCRL.sh
(<Ctrl>+<d>キーで入力を終了します)
#
|
- Windows版
atコマンド※を使用してCRLの定期的なダウンロードや,Webサーバの再起動ができます。
atコマンドにcrldownloadコマンド,又はcrldownloadコマンドを記述したスクリプトを実行する時間を指定して,定期的にCRLをダウンロードし,Webサーバを再起動します。
注※ OSコマンドの一つ。詳細な指定方法は各OSマニュアルを参照してください。
- atコマンドの指定方法
C:\>at [\\コンピュータ名]時刻[/every:日付[,...]|/next:日付[,...]]"コマンド"
|
- atコマンドの指定例
- 毎日,午前8時にCRLをダウンロードして,Webサーバを再起動する((a)のスクリプトを実行する)には,次のように指定します。
C:\>at 8:00 /every:M,T,W,Th,F,S,Su "C:\Program Files\Hitachi\httpsd\sbin\hws_getCRL.bat"
|
(5) Solaris版での注意事項
標準提供しているLDAPライブラリファイル以外を使用する場合は,環境変数LD_LIBRARY_PATHに,使用するLDAPライブラリファイルの格納ディレクトリを設定してください。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.