* クライアント証明書の失効 [#m335e53e]

** 前提 [#g246e5ee]
- ここでは認証局の設置場所(CATOP)を/var/pki/myCAとする。
- CAスクリプトを使い証明書発行作業をしたこととする。

** 証明書の状態を確認する [#je3c7614]
 cat ./myCA/index.txt

 V: 有効(Valid)
 R: 失効(Revoked)

- 先頭がVで始まる行が有効な証明書のレコード。
- レコード中にシリアルナンバーが記述されており、そのレコードに対応する証明書がmyCA/newcerts/シリアルナンバー.pemとして存在するはずなので、確認する。


*** 証明書のコモンネームの確認 [#rd5f76dd]
 openssl x509 -in ./myCA/newcerts/ABC123XX1.pem -subject

** クライント証明書を失効させる [#e4ea1d6b]
*** CRLシリアルナンバーファイルの作成 [#u251a32e]
*** (初回だけ)CRLシリアルナンバーファイルの作成 [#u251a32e]
 echo 00 > ./myCA/crlnumber
- 最初は存在しないはずなので作成する。
- 以後、失効実行する度にファイルが更新されて01、02とインクリメントされていく。
-- どうも、この数値、最初は00で指定しないとダメなようだ。000ではエラー(error while loading CRL number/odd number of chars)が発生する。

*** 失効の実行 [#e1f5df5a]
 openssl ca -config ./openssl.cnf -gencrl -revoke myCA/newcerts/ABC123XX1.pem
- myCA/newcerts/ABC123XX1.pemは失効させる証明書。

*** (初回だけ)証明書失効リスト(CRL)ファイルを作成 [#jac296b9]
*** 証明書失効リスト(CRL)ファイルを作成 [#jac296b9]
 openssl ca -config ./openssl.cnf -gencrl -out ./myCA/crl/crl.pem 
- -outオプションで指定する証明書失効リスト(CRL)ファイルを作成する。
- このファイルをApacheなどに設定する。

*** CRLの有効期限 [#zac47549]
- CRLは有効期限があり、期限内に更新しないとApacheで処理するすべての証明書(失効していない証明書も含む)が無効になる。
- したがって、新たに失効する証明書がなくてもバッチ処理などで定期的にCRLを更新する必要がある。
- 有効期限はデフォルトでは30日などだが、面倒であれば3650日など長めにしておく。

** ApacheでCRLを設定する [#d608cebb]
 vi httpd.conf

 SSLCARevocationFile /var/pki/myCA/crl/crl.pem

** CRLの内容の確認 [#fe21a38d]
 openssl crl -in crl.pem -text
上のコマンドを実行すると以下のように失効した証明書のシリアルナンバーを確認出来る。
 Revoked Certificates:
    Serial Number: ABC1234XYZ56789
        Revocation Date: Apr 26 13:45:28 2013 GMT
*** PCにインストールしたクライアント証明書のシリアルナンバーの確認(Windows) [#lb876594]
- コントロールパネルからインターネットオプションを開く。
- 「コンテンツ」タブを選び、「証明書」ボタンを押下する。
- インストールしたクライアント証明書を探して選択し、「表示」ボタンを押下する。
- 「詳細」タブを選び、「シリアル番号」を確認する。

** 参考 [#ufd7ffda]
- http://www.atmarkit.co.jp/ait/articles/0102/23/news002.html

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS