18.8. certmonger와 SCEP 사용
SCEP(Simple Certificate Enrollment Protocol)는 다른 장치 및 운영 체제에서 사용할 수 있는 인증서 관리 프로토콜입니다. 환경에서 SCEP 서버를 외부 CA(인증 기관)로 사용하는 경우 certmonger 를 사용하여 IdM(Identity Management) 클라이언트의 인증서를 가져올 수 있습니다.
18.8.1. SCEP 개요 링크 복사링크가 클립보드에 복사되었습니다!
SCEP(Simple Certificate Enrollment Protocol)는 다른 장치 및 운영 체제에서 사용할 수 있는 인증서 관리 프로토콜입니다. SCEP 서버를 외부 CA(인증 기관)로 사용할 수 있습니다.
CA SCEP 서비스에서 직접 HTTP를 통해 인증서를 요청 및 검색하도록 IdM(Identity Management) 클라이언트를 구성할 수 있습니다. 이 프로세스는 일반적으로 제한된 시간 동안만 유효한 공유 시크릿에 의해 보호됩니다.
클라이언트 측에서 SCEP는 다음과 같은 구성 요소를 제공해야 합니다.
- SCEP URL: CA CEP 인터페이스의 URL입니다.
-
SCEP 공유 보안: 인증서를 얻는 데 사용되는 SCEP 클라이언트와 SCEP 클라이언트 간에 공유하는
challengePassword4.6.1입니다.
그런 다음 클라이언트는 SCEP를 통해 CA 인증서 체인을 검색하고 CA로 인증서 서명 요청을 보냅니다.
certmonger 를 사용하여 SCEP를 구성할 때 발급된 인증서 매개변수를 지정하는 새 CA 구성 프로필을 생성합니다.
18.8.2. SCEP를 통해 IdM CA 서명 인증서 요청 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 SCEP_example SCEP CA 구성을 certmonger 에 추가하고 client.idm.example.com IdM 클라이언트에서 새 인증서를 요청합니다. certmonger 는 NSS 인증서 데이터베이스 형식과 파일 기반(PEM) 형식을 모두 지원합니다.
사전 요구 사항
- SCEP URL을 알고 있습니다.
-
challengePasswordECDHE 공유 시크릿이 있습니다.
절차
certmonger에 CA 구성을 추가합니다.[root@client.idm.example.com ~]# getcert add-scep-ca -c SCEP_example -u SCEP_URL
[root@client.idm.example.com ~]# getcert add-scep-ca -c SCEP_example -u SCEP_URLCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
-c: CA 구성에 대한 필수 닉네임입니다. 나중에 동일한 값을 다른getcert명령과 함께 사용할 수 있습니다. -u: 서버의 SCEP 인터페이스 URL.중요HTTPS URL을 사용하는 경우
-R옵션을 사용하여 SCEP 서버 CA 인증서의 PEM 형식 사본 위치도 지정해야 합니다.
-
CA 구성이 성공적으로 추가되었는지 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 구성이 성공적으로 추가되면 certmonger는 원격 CA에서 CA 체인을 검색합니다. 그러면 CA 체인이 명령 출력에 지문으로 표시됩니다. 암호화되지 않은 HTTP를 통해 서버에 액세스하는 경우 지문을 SCEP 서버에 표시되는 지문과 수동으로 비교하여 중간자 공격을 방지합니다.
CA에서 인증서를 요청합니다.
NSS를 사용하는 경우:
[root@client.idm.example.com ~]# getcert request -I Example_Task -c SCEP_example -d /etc/pki/nssdb -n ExampleCert -N cn="client.idm.example.com" -L one-time_PIN -D client.idm.example.com
[root@client.idm.example.com ~]# getcert request -I Example_Task -c SCEP_example -d /etc/pki/nssdb -n ExampleCert -N cn="client.idm.example.com" -L one-time_PIN -D client.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 옵션을 사용하여 인증서 요청의 다음 매개변수를 지정할 수 있습니다.
-
-I: 선택 사항: 작업 이름: 요청에 대한 추적 ID입니다. 나중에getcert list명령과 동일한 값을 사용할 수 있습니다. -
-c: 요청을 제출할 CA 구성입니다. -
-d: 인증서와 키를 저장할 NSS 데이터베이스가 있는 디렉터리입니다. -
-n: NSS 데이터베이스에 사용되는 인증서의 별 이름입니다. -
-N: CSR의 제목 이름입니다. -
-L: CA에서 발행한 시간 제한 일회성challengePasswordBOOM입니다. -
-D: 인증서의 대체 이름(일반적으로 호스트 이름과 동일)입니다.
-
OpenSSL을 사용하는 경우:
[root@client.idm.example.com ~]# getcert request -I Example_Task -c SCEP_example -f /etc/pki/tls/certs/server.crt -k /etc/pki/tls/private/private.key -N cn="client.idm.example.com" -L one-time_PIN -D client.idm.example.com
[root@client.idm.example.com ~]# getcert request -I Example_Task -c SCEP_example -f /etc/pki/tls/certs/server.crt -k /etc/pki/tls/private/private.key -N cn="client.idm.example.com" -L one-time_PIN -D client.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 옵션을 사용하여 인증서 요청의 다음 매개변수를 지정할 수 있습니다.
-
-I: 선택 사항: 작업 이름: 요청에 대한 추적 ID입니다. 나중에getcert list명령과 동일한 값을 사용할 수 있습니다. -
-c: 요청을 제출할 CA 구성입니다. -
-f: 인증서의 스토리지 경로입니다. -
-k: 키의 스토리지 경로입니다. -
-N: CSR의 제목 이름입니다. -
-L: CA에서 발행한 시간 제한 일회성challengePasswordBOOM입니다. -
-D: 인증서의 대체 이름(일반적으로 호스트 이름과 동일)입니다.
-
검증
인증서가 발행되어 로컬 데이터베이스에 올바르게 저장되었는지 확인합니다.
NSS를 사용한 경우 다음을 입력합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenSSL을 사용한 경우 다음을 입력합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MONITORING 상태는 발급된 인증서를 성공적으로 검색할 수 있음을 나타냅니다.
getcert-list(1)매뉴얼 페이지에는 다른 가능한 상태 및 해당 의미가 나열되어 있습니다.
18.8.3. certmonger를 사용하여 AD SCEP 인증서 자동 갱신 링크 복사링크가 클립보드에 복사되었습니다!
certmonger 가 SCEP 인증서 갱신 요청을 보내면 기존 인증서 개인 키를 사용하여 이 요청이 서명됩니다. 그러나 기본적으로 certmonger 가 전송한 갱신 요청에는 원래 인증서를 얻는 데 사용된 challengePassword ECDHE도 포함됩니다.
SCEP 서버로 작동하는 Active Directory(AD) 네트워크 장치 등록 서비스(NDES) 서버는 원래 challengePassword 4.6.1이 포함된 갱신 요청을 자동으로 거부합니다. 결과적으로 갱신이 실패합니다.
AD를 통한 갱신이 작동하려면 challengePassword ECDHE 없이 서명된 갱신 요청을 보내도록 certmonger 를 구성해야 합니다. 또한 업데이트 시 주체 이름을 비교하지 않도록 AD 서버를 구성해야 합니다.
AD 이외의 SCEP 서버가 challengePassword 를 포함하는 요청을 거부할 수 있습니다. 이러한 경우 certmonger 구성을 이러한 방식으로 변경해야 할 수도 있습니다.
사전 요구 사항
- RHEL 서버는 RHEL 8.6 이상을 실행해야 합니다.
절차
-
AD 서버에서
regedit를 엽니다. -
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MSCEP 하위 키에서 새로운 32비트 REG_DWORD 항목
DisableRenewalSubjectNameMatch를 추가하고 해당 값을1로 설정합니다. certmonger가 실행 중인 서버에서/etc/certmonger/certmonger.conf파일을 열고 다음 섹션을 추가합니다.[scep] challenge_password_otp = yes
[scep] challenge_password_otp = yesCopy to Clipboard Copied! Toggle word wrap Toggle overflow certmonger를 다시 시작하십시오.
systemctl restart certmonger
# systemctl restart certmongerCopy to Clipboard Copied! Toggle word wrap Toggle overflow