28.10. IdM 하위 CA에서 새 사용자 인증서 요청 및 클라이언트로 내보내기
IdM(Identity Management) 관리자는 IdM 클라이언트에서 실행되는 웹 서버를 구성하여 웹 브라우저를 사용하여 특정 IdM 하위 CA에서 발급한 인증서로 인증하기 위해 서버에 액세스하는 사용자를 요청할 수 있습니다. 다음 절차에 따라 특정 IdM 하위 CA에서 사용자 인증서를 요청하고 인증서와 해당 개인 키를 사용자가 웹 브라우저를 사용하여 웹 서버에 액세스하려는 호스트로 내보냅니다. 나중에 인증서와 개인 키를 브라우저로 가져옵니다.
프로세스
선택 사항: 새 디렉터리(예:
~/certdb/)를 생성하고 임시 인증서 데이터베이스로 설정합니다. 메시지가 표시되면 NSS Certificate 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사용자에 대한certificate_request.csr이라는 이름으로 CSR을 생성하려면 인증서 개인 키의 닉네임을idm_user로 설정하여 쉽게 찾을 수 있도록 IDm_user로 설정하고,CN=idm_user,OID=M.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를 지정합니다. 예를 들어, Cryostat
UserRoles프로필의 인증서를 얻으려면webclient-ca에서idm_user@IDM.EXAMPLE.COM주체에 대해 추가된 사용자 역할 확장자가 있는 프로필의 경우~/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.pemNSS 데이터베이스에 인증서를 추가합니다. 인증서가 NSS 데이터베이스의 개인 키와 일치하도록 이전에 CSR을 생성할 때 사용한 것과 동일한 닉네임을 설정하려면
-n옵션을 사용합니다.t옵션은 신뢰 수준을 설정합니다. 자세한 내용은 certutil(1) 도움말 페이지를 참조하십시오.i옵션은 입력 인증서 파일을 지정합니다. 예를 들어 NSS 데이터베이스에 추가하려면~/certdb/데이터베이스의~/idm_user.pem파일에 저장된idm_userickname이 있는 인증서를 사용하여 인증서를 추가합니다.# certutil -A -d ~/certdb/ -n idm_user -t "P,," -i ~/idm_user.pemNSS 데이터베이스의 키가 닉네임으로 표시되지 않는지 확인합니다.
예를 들어~/certdb/데이터베이스에 저장된 인증서가 분리되지 않았는지 확인하려면 다음을 수행하십시오.# certutil -K -d ~/certdb/< 0> rsa 5ad14d41463b87a095b1896cf0068ccc467df395 NSS Certificate DB:idm_userpk12util명령을 사용하여 NSS 데이터베이스에서 PKCS12 형식으로 인증서를 내보냅니다. 예를 들어/root/certdbNSS 데이터베이스의idm_usernickname이 있는 인증서를~/idm_user.p12파일로 내보내려면 다음을 실행합니다.# 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