80.11. 新しいユーザー証明書の要求とクライアントへのエクスポート
Identity Management (IdM) 管理者は、Web ブラウザーを使用してサーバーにアクセスするユーザーに対して、特定の IdM サブ CA が発行する証明書での認証を求めるように IdM クライアントで実行中の Web サーバーを設定できます。特定の IdM サブ CA からユーザー証明書を要求し、ユーザーが Web ブラウザー経由で Web サーバーにアクセスするホストにその証明書と対応する秘密鍵をエクスポートするには、このセクションを実行するには、次の手順に従います。その後、ブラウザーに証明書と秘密鍵をインポート します。
手順
オプション: 新しいディレクトリー (例:
~/certdb/) を作成し、それを一時的な証明書データベースにします。要求されたら、NSS 証明書の DB パスワードを作成し、後続の手順で生成される証明書への鍵を暗号化します。# mkdir ~/certdb/ # certutil -N -d ~/certdb/ Enter a password which will be used to encrypt your keys. The password should be at least 8 characters long, and should contain at least one non-alphabetic character. Enter new password: Re-enter password:証明書署名要求 (CSR) を作成し、その出力をファイルにリダイレクトします。たとえば、
IDM.EXAMPLE.COMレルムのidm_userユーザーの4096ビット証明書に対して、certificate_request.csrという名前の CSR を作成する場合は、判別を簡単にするために、証明書の秘密鍵のニックネームをidm_userに設定し、発行先をCN=idm_user,O=IDM.EXAMPLE.COMに設定します。# certutil -R -d ~/certdb/ -a -g 4096 -n idm_user -s "CN=idm_user,O=IDM.EXAMPLE.COM" > certificate_request.csrプロンプトが表示されたら、
certutilを使用して一時データベースを作成したときに入力したパスワードを入力します。次に、やめるように指示されるまでランダムに入力を続けます。Enter Password or Pin for "NSS Certificate DB": A random seed must be generated that will be used in the creation of your key. One of the easiest ways to create a random seed is to use the timing of keystrokes on a keyboard. To begin, type keys on the keyboard until this progress meter is full. DO NOT USE THE AUTOREPEAT FUNCTION ON YOUR KEYBOARD! Continue typing until the progress meter is full:証明書要求ファイルをサーバーに送信します。新しく発行した証明書に関連付ける Kerberos プリンシパルと、証明書を保存する出力ファイルを指定し、必要に応じて証明書のプロファイルを指定します。証明書を発行する IdM サブ CA を指定します。たとえば、
idm_user@IDM.EXAMPLE.COMプリンシパルのIECUserRolesプロファイル (ユーザーロール拡張を追加したプロファイル) の証明書をwebclient-caから取得して、~/idm_user.pemファイルに保存するには、次のコマンドを実行します。# ipa cert-request certificate_request.csr --principal=idm_user@IDM.EXAMPLE.COM --profile-id=IECUserRoles --ca=webclient-ca --certificate-out=~/idm_user.pem証明書を NSS データベースに追加します。証明書が NSS データベースの秘密鍵に一致するように、CSR を作成する際に使用したニックネームを設定するには、
-nオプションを使用します。-tオプションは信頼レベルを設定します。詳細は、certutil(1) man ページを参照してください。-iオプションは、入力証明書ファイルを指定します。たとえば、idm_userニックネームを持つ証明書を NSS データベースに追加するには、次のコマンドを実行します。証明書は、~/certdb/データベースの~/idm_user.pemファイルに保存されます。# certutil -A -d ~/certdb/ -n idm_user -t "P,," -i ~/idm_user.pemNSS データベースの鍵で、ニックネームが
(orphan)と表示されていないことを確認します。たとえば、~/certdb/データベースに保存されている証明書で、対応する鍵が存在することを確認するには、以下のコマンドを実行します。# certutil -K -d ~/certdb/ < 0> rsa 5ad14d41463b87a095b1896cf0068ccc467df395 NSS Certificate DB:idm_user証明書を、NSS データベースから PKCS12 形式にエクスポートするには、
pk12utilコマンドを使用します。たとえば、NSS データベース/root/certdbから~/idm_user.p12ファイルへ、idm_userニックネームを持つ証明書をエクスポートする場合は、次のコマンドを実行します。# pk12util -d ~/certdb -o ~/idm_user.p12 -n idm_user Enter Password or Pin for "NSS Certificate DB": Enter password for PKCS12 file: Re-enter password: pk12util: PKCS12 EXPORT SUCCESSFULidm_userの証明書認証を有効にするホストに、証明書を転送します。# scp ~/idm_user.p12 idm_user@client.idm.example.com:/home/idm_user/セキュリティー上の理由から、証明書が転送されたホストの、.pkcs12 ファイルが格納されているディレクトリーに、'other' グループがアクセスできないようにします。
# chmod o-rwx /home/idm_user/セキュリティー上の理由から、一時 NSS データベースおよび .pkcs12 ファイルを、サーバーから削除します。
# rm ~/certdb/ # rm ~/idm_user.p12