プライベート認証局(CA)で作成したクライアント証明書の利用方法

今のところ秘密のフォルダーは「ベーシック認証」だけど盗聴・改竄に弱いところがあるようだ。代替えでクライアント証明書をPC以外にWWWサーバーで利用できそうなので、新たに作成する証明書を個人名にして接続元 (ユーザ) が本物かどうかを証明する「SSLクライアント認証」とすれば、「Basic認証」の代わりになる。

Client 証明書作成
作成方法は投稿記事を参照、同じ作業の中で下記を修正して作成する。

1. Common Nameにユーザ名を入力
2. Organization Unit Name、Email Adressは「Enterのみ」
3. xxxx.csr,xxxx.crt,key,xxxxcert.p12の「xxxx」はユーザー名

【Windowsへ登録とApacheのhttpd-ssl.confに設定】

*必要なファイルは認証局(CA)のmy_ca.crtとクライアント(ユーザー名)証明書のxxxx.crt
・xxxxcert.p12はWindowsの証明書ストアーに登録

[nternet Explorer へ登録]
コントロールパネル の インターネットオプション(インターネットオプション) を選択⇒「コンテンツ タブ」⇒[証明書]⇒[インポート(I)…]でウィザード画面を表示。

・インポートする証明書ファイル名 ➡ xxxxcert.p12 を指定
・ファイルの種類 ➡ Personal Information Exchange (*.pfx; *.p12) 又は 全てのファイル (*.*)
・パスワード ➡ ユーザーが証明書を取り込む時のパスワード
・証明書ストア ➡ 個人へ登録

*証明書の種類に基づいて、自動的に証明書ストアを選択するにすれば OK

#インポートが成功すると、下記の2つの証明書が追加
・信頼されたルート証明機関タブ: 認証局(CA)名
・個人タブ: Common Name(ユーザー名)
*Mozilla Firefox 等の登録は直接ブラウザへ証明書を登録

[Client証明書の利用方法]
SSL クライアント認証を使う場合は、「Common Name(ユーザー名)」 のみアクセスを許可する。

**httpd-ssl.confのSSLengine Onの下辺りに記入**
<Directory x:/xampp/htdocs/wordpress/xxxxxx>
SSLCACertificateFile x:/xxxx/my_ca.crt
SSLCARevocationFile x:/xxxx/xxxx.crt
</directory>
SSLRequireSSL
SSLVerifyClient require
SSLUserName SSL_CLIENT_S_DN_CN
Satisfy Any
Allow from All
SSLRequire %{SSL_CLIENT_S_DN_CN} in {“ユーザー名”}

【Client証明書の破棄】
C:\xxxx\index.txtの発行済み証明書の一覧から破棄するPEMをチェック。

cd / x:\xxxx
openssl ca -config openssl.cnf -revoke newcerts/(シリアル値).pem
*証明書失効リストを更新
openssl ca -config openssl.cnf -gencrl -out xxxx.crt
# service httpd reload
これで該当証明書は使えなくなる

【[Client証明書の有効期限を更新】

1. 新規にクライアント証明書を発行する
2. Common Name 等は、前回の証明書と同じ内容を入力
3. 新しいクライアント証明書を設置、古い証明書を削除
4. 古いクライアント証明書を破棄

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)