16.2. 新しいユーザー証明書の要求とクライアントへのエクスポート
Identity Management (IdM) 管理者は、IdM 環境でユーザーの証明書を作成し、作成した証明書を、ユーザーの証明書認証を有効にする IdM クライアントにエクスポートできます。
証明書を使用して認証するユーザーがすでに証明書を持っている場合は、この手順を実行する必要はありません。
手順
オプション: 新しいディレクトリー (例:
~/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 プリンシパルと、証明書を保存する出力ファイルを指定し、必要に応じて証明書のプロファイルを指定します。たとえば、
IECUserRolesプロファイル (idm_user@IDM.EXAMPLE.COMプリンシパルに追加したユーザーロール拡張機能を持つプロファイル) の証明書を取得して、それを~/idm_user.pemファイルに保存する場合は、次のコマンドを実行します。# ipa cert-request certificate_request.csr --principal=idm_user@IDM.EXAMPLE.COM --profile-id=IECUserRoles --certificate-out=~/idm_user.pem証明書を NSS データベースに追加します。証明書が NSS データベースの秘密鍵に一致するよ以前に CSR を作成する際に使用したニックネームを設定するには、
-nオプションを使用します。-tオプションは信頼レベルを設定します。詳細は、certutil(1) man ページを参照してください。-iオプションは、入力証明書ファイルを指定します。たとえば、~/certdb/データベースの~/idm_user.pemファイルに保存されているidm_userニックネームを持つ証明書を NSS データベースに追加するには、次のコマンドを実行します。# 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コマンドを使用します。たとえば、/root/certdbNSS データベースから~/idm_user.p12ファイルへ、idm_userニックネームを持つ証明書をエクスポートする場合は、次のコマンドを実行します。# pk12util -d ~/certdb -o ~/idm_user.p12 -n idm_userEnter 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