仕組

クライアントは、クライアント証明書を提示し、サーバは、クライアント証明書の信頼性をCA証明書を用いて検証する。
クライアントが秘密鍵を用いてなんらかのデータに署名を行い?、上で有効と判断されたクライアント証明書で検証する。検証が成功すればクライアント認証が完了する。

作業

サーバの設定

コンフィグファイルを適切に設定するのを忘れないように(nsCertType?)

1. サーバ管理者は/etc/httpd/conf/httpd.confを設定し、apacheに自前CA証明書を使用させる

SSLCACertificatePath /etc/httpd/ca
SSLCACertificateFile /etc/httpd/ca/cacert.pem
Alias URLパス ディレクトリ
<Directory ディレクトリ>
       SSLRequireSSL
       SSLVerifyClient require
       SSLOptions +FakeBasicAuth
       AuthUserFile htpasswdファイルのパス
       AuthName "hogehoge"
       AuthType Basic
       Require valid-user
</Directory>

2. htpasswdファイルを用意する

# htpasswd -c htpasswdファイルのパス "証明書のSubject"
New password:(passwordと入力)
Re-type new password:

証明書のSubject (DN Distinguished Name)は

$ openssl x509 -noout -subject -in certificate.crt

で得られる書式を用いてください

参照

クライアント証明書の準備

1. クライアントはPKCS#12形式クライアント証明書を作成する
まず、クライアントユーザーが鍵ペア(秘密鍵と証明書要求)を作成する

$ openssl req -new -keyout privatekey.pem -out privatecsr.pem
Enter PEM pass phrase:(クライアント証明書のpass phraseを考えて入力)
Verifying password - Enter PEM pass phrase:

秘密鍵privatekey.pemとクライアント証明書privatecsr.pemが作成される

2. CAはクライアント証明書privatecsr.pemを受け取り、証明書を発行する
注意:x509拡張の用途制限をopenssl.cnfで適切に指定すること(クライアント認証目的利用可能にする)

$ openssl ca -out private_cert.pem -infiles privatecsr.pem
Enter PEM pass phrase:(CAのpass phraseを入力)
...
Write out database with 1 new entries
Data Base Updated

CA署名済みクライアント証明書private_cert.pemが作成される

3. クライアントは証明書と秘密鍵を固めてPKCS#12形式ファイルとしてエクスポートする

$ openssl pkcs12 -export -inkey privatekey.pem -in private_cert.pem \
-name "Sample Client Cert" -out private_cert.p12
Enter PEM pass phrase:(クライアント証明書のpass phraseを入力)
Enter Export Password:(インポート用pass phraseを考えて入力)
Verifying password - Enter Export Password:

各証明書及び秘密鍵がPKCS#12形式ファイルprivate_cert.p12としてエクスポートされる


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-05-13 (日) 13:45:42