10.2. 새 사용자 인증서를 요청하고 클라이언트로 내보내기

IdM(Identity Management) 관리자는 IdM 환경에서 사용자에 대한 인증서를 생성하고 사용자에 대한 인증서 인증을 활성화하려는 IdM 클라이언트에 내보낼 수 있습니다.

참고

인증서를 사용하여 인증하려는 사용자에게 이미 인증서가 있는 경우 이 절차를 따를 필요가 없습니다.

절차

  1. 선택적으로 새 디렉터리(예: ~/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:
  2. CSR(인증서 서명 요청)을 생성하고 출력을 파일로 리디렉션합니다. 예를 들어 IDM.EXAMPLE.COM 영역에서 idm_user 사용자에 대한 4096 비트 인증서에 대한 certificate_request.csr 이라는 이름으로 CSR을 생성하려면 인증서 개인 키의 nickname을 idm_user 로 설정하고 주체를 CN=id_user,OID_user,=OIDM.AMPLE :COM :COM :COM 영역에서 설정할 수 있습니다.

    # certutil -R -d ~/certdb/ -a -g 4096 -n idm_user -s "CN=idm_user,O=IDM.EXAMPLE.COM" > certificate_request.csr
  3. 메시지가 표시되면 certutil 을 사용하여 임시 데이터베이스를 생성할 때 입력한 것과 동일한 암호를 입력합니다. 그런 다음 중지하도록 지시할 때까지 randlomly를 계속 입력합니다.

    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:
  4. 인증서 요청 파일을 서버에 제출합니다. 새로 발행된 인증서, 인증서를 저장할 출력 파일, 인증서 프로필을 선택적으로 연결할 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
  5. NSS 데이터베이스에 인증서를 추가합니다. 인증서가 NSS 데이터베이스의 개인 키와 일치하도록 이전에 CSR을 생성할 때 사용한 것과 동일한 닉네임을 설정하려면 -n 옵션을 사용합니다. -t 옵션은 신뢰 수준을 설정합니다. 자세한 내용은 certutil(1) 매뉴얼 페이지를 참조하십시오. i 옵션은 입력 인증서 파일을 지정합니다. 예를 들어, NSS 데이터베이스에 추가하려면 ~/certdb/ 데이터베이스의 ~/ idm_user.pem 파일에 저장된 idm_user nickname이 있는 인증서를 사용합니다.

    # certutil -A -d ~/certdb/ -n idm_user -t "P,," -i ~/idm_user.pem
  6. NSS 데이터베이스의 키가 별 이름으로 표시되지 않는지 확인합니다. 예를 들어 ~/certdb/ 데이터베이스에 저장된 인증서가 분리되지 않았는지 확인하려면 다음을 수행합니다.

    # certutil -K -d ~/certdb/
    < 0> rsa      5ad14d41463b87a095b1896cf0068ccc467df395   NSS Certificate DB:idm_user
  7. pk12util 명령을 사용하여 NSS 데이터베이스에서 PKCS12 형식으로 인증서를 내보냅니다. 예를 들어 /root/certdb NSS 데이터베이스에서 idm_user nickname이 있는 인증서를 ~/idm_user.p12 파일로 내보내려면 다음을 실행합니다.

    # 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 SUCCESSFUL
  8. idm_user 의 인증서 인증을 활성화할 호스트로 인증서를 전송합니다.

    # scp ~/idm_user.p12 idm_user@client.idm.example.com:/home/idm_user/
  9. 인증서가 전송된 호스트에서 .pkcs12 파일이 보안상의 이유로 'other' 그룹에 액세스할 수 없는 디렉터리로 설정합니다.

    # chmod o-rwx /home/idm_user/
  10. 보안상의 이유로 서버에서 임시 NSS 데이터베이스와 .pkcs12 파일을 제거하십시오.

    # rm ~/certdb/
    # rm ~/idm_user.p12