クライアント証明書の失効

前提

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

証明書の状態を確認する

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

証明書のコモンネームの確認

openssl x509 -in ./myCA/newcerts/ABC123XX1.pem -subject

クライント証明書を失効させる

(初回だけ)CRLシリアルナンバーファイルの作成

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

失効の実行

openssl ca -config ./openssl.cnf -gencrl -revoke myCA/newcerts/ABC123XX1.pem
  • myCA/newcerts/ABC123XX1.pemは失効させる証明書。

証明書失効リスト(CRL)ファイルを作成

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

CRLの有効期限

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

ApacheでCRLを設定する

vi httpd.conf
SSLCARevocationFile /var/pki/myCA/crl/crl.pem

CRLの内容の確認

openssl crl -in crl.pem -text

上のコマンドを実行すると以下のように失効した証明書のシリアルナンバーを確認出来る。

Revoked Certificates:
   Serial Number: ABC1234XYZ56789
       Revocation Date: Apr 26 13:45:28 2013 GMT

PCにインストールしたクライアント証明書のシリアルナンバーの確認(Windows)

  • コントロールパネルからインターネットオプションを開く。
  • 「コンテンツ」タブを選び、「証明書」ボタンを押下する。
  • インストールしたクライアント証明書を探して選択し、「表示」ボタンを押下する。
  • 「詳細」タブを選び、「シリアル番号」を確認する。

参考


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

Last-modified: 2017-05-18 (木) 04:08:54