<追記>
ちょっと修正しましたので新しい記事はこちらです。
CentOS の Apache でクライアント証明書認証(修正版)
CentOSのApacheでクライアント証明書認証をしてみる。前にDebianでやったので基本は同じだけど、ファイルのパスが違ったりするので再度メモ
作業は「/var/www/ssl」で行い、独自認証局のフォルダは「/var/www/ssl/hogeCA」に作ります。また証明書の期限は30年(10950日)にしてあります。
◆作業準備
作業フォルダ作成
mkdir -p /var/www/ssl
opensslの設定
/etc/pki/tls/openssl.cnf (CentOS5)
/usr/share/ssl/openssl.cnf (CentOS4)
> dir = ./demoCA # Where everything is kept < dir = ./hogeCA # Where everything is kept
証明書のポリシーを変えたい場合(デフォルトはcountryName,stateOrProvinceName,organizationNameがCAと一致しないとだめなのでCA組織外に発行する場合に困る)<br />
policy = policy_match
policy_matchを直下に定義してある「policy_anything 」に変えるとか、「policy_match」自体を変更するとか(下の例)
変更前
[ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional
変更後
[ policy_match ] countryName = supplied stateOrProvinceName = supplied organizationName = supplied organizationalUnitName = optional commonName = supplied emailAddress = optional
ちなみに
match CAと同じじゃないとダメ supplied 入力必須 optional あってもなくてもいい
CA作成スクリプトコピー
cp -p /etc/pki/tls/misc/CA /var/www/ssl/ (CentOS5) cp -p /usr/share/ssl/misc/CA /var/www/ssl/ (CentOS4)
/var/www/ssl/CA
DAYS="-days 10950" CADAYS="-days 10956" CATOP=/var/www/ssl/hogeCA
◆認証局CAの作成
cd /var/www/ssl
./CA -newca
CA certificate filename (or enter to create)
止まるので改行をいれる
Making CA certificate ...
Generating a 1024 bit RSA private key
.............++++++
.......++++++
writing new private key to '/var/www/ssl/hogeCA/private/./cakey.pem'
Enter PEM pass phrase: CAの秘密鍵のパスフレーズ
Verifying - Enter PEM pass phrase: CAの秘密鍵のパスフレーズ確認