인증서 서비스가 최종 엔터티 인증서를 게시하지 못했습니다.
CA(인증 기관)의 주요 기능 중 하나는 클라이언트의 인증서 요청을 평가하는 것으로, 미리 정의된 조건을 충족할 경우에는 이러한 클라이언트에게 인증서를 발급합니다. 인증서 등록에 성공하려면 요청을 제출하기 전에 유효한 CA 인증서를 사용하는 CA, 올바르게 구성된 인증서 템플릿, 클라이언트 계정, 인증서 요청, 클라이언트가 CA에 요청을 제출하는 방법을 비롯한 여러 요소가 준비되어 있어야 하고 요청이 확인되면 발급된 인증서를 설치해야 합니다.
최종 엔터티 인증서의 게시 허용
인증서를 게시하려면 네트워크 연결 및 네트워크 권한이 필요합니다. 이 문제를 해결하려면:
클라이언트와 CA(인증 기관) 간의 네트워크 연결을 확인합니다.
CA에 인증서를 요청하는 엔터티의 사용자 또는 컴퓨터 개체의 userCertificate 특성에 대한 읽기 및 쓰기 권한이 있는지 확인합니다.
도메인이 두 개 이상이거나 2단계(부모/자식) 도메인 계층 구조가 있는 경우 도메인 하나(도메인 A)의 Cert Publishers 그룹에게 다른 도메인(도메인 B)의 userCertificate 특성에 대한 읽기 및 쓰기 권한을 허용해야 합니다. 이렇게 하려면 "도메인 간 권한 오류 해결" 섹션의 절차를 따르십시오.
인증서를 게시합니다.
이러한 절차를 수행하려면 CA 관리 권한이 있거나 적절한 권한을 위임받아야 합니다.
클라이언트와 CA 간의 네트워크 연결 확인
CA에 대한 클라이언트 연결을 확인하려면:
클라이언트에서 시작을 클릭하고 cmd를 입력한 다음 Enter 키를 누릅니다.
ping <server_FQDN>을 입력한 다음 <Enter> 키를 누릅니다. 여기서 <server_FQDN>은 CA의 FQDN(정규화된 도메인 이름)이며 server1.contoso.com과 같을 수 있습니다.
ping 결과가 성공적이면 다음과 유사한 응답을 받습니다.
IP_address의 응답: 바이트=32 시간=3ms TTL=59
IP_address의 응답: 바이트=32 시간=20ms TTL=59
IP_address의 응답: 바이트=32 시간=3ms TTL=59
IP_address의 응답: 바이트=32 시간=6ms TTL=59 3
명령 프롬프트에서 ping <IP_address>를 입력한 다음 <Enter> 키를 누릅니다. 여기서 <IP_address>는 CA의 IP 주소입니다.
IP 주소로 CA에 성공적으로 연결할 수 있지만 FQDN으로는 연결할 수 없습니다. 이는 DNS(도메인 이름 시스템) 호스트 이름 확인에 문제가 있는 것입니다. IP 주소로 CA에 성공적으로 연결할 수 없으면 네트워크 연결, 방화벽 구성 또는 IPsec(인터넷 프로토콜 보안) 구성에 문제가 있을 수 있습니다.
Active Directory에서 도메인 컴퓨터 및 도메인 사용자 컨테이너에 대한 권한 확인
CA에 도메인 컴퓨터 및 도메인 사용자 컨테이너에 대한 필수 권한이 있는지 확인하려면:
시작을 클릭하고 관리 도구를 가리킨 다음 Active Directory 사이트 및 서비스를 클릭합니다.
보기 메뉴에서 서비스 노드 표시를 클릭합니다.
Services 및 Public Key Services를 두 번 클릭하고 도메인 컴퓨터를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.
보안 탭에서 Cert Publishers 그룹에 읽기 및 쓰기 권한이 있는지 확인합니다.
도메인 사용자를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.
보안 탭에서 Cert Publishers 그룹에 읽기 및 쓰기 권한이 있는지 확인합니다.
도메인 간 권한 오류 해결
Dsacls 도구를 사용하여 이러한 권한을 설정하려면:
시작을 클릭하고 cmd를 입력한 다음 Enter 키를 눌러 다음 명령을 실행합니다.
dsacls "dc=<도메인 B>,dc=<contoso>,dc=<com>" /I:S /G "<도메인 A>\Cert Publishers":RP;userCertificate,user
dsacls "dc=<도메인 B>,dc=<contoso>,dc=<com>" /I:S /G "<도메인 A>\Cert Publishers":WP;userCertificate,user
dsacls "cn=<adminsdholder>,cn=system,dc=<contoso>,dc=<com>" /I:S /G \Cert Publishers":RP;userCertificate,user
dsacls "cn=<adminsdholder>,cn=system,dc=<도메인 B>,dc=<contoso>,dc=<com>" /I:S /G "<도메인 A>\Cert Publishers":WP;userCertificate,user
예에서는 <도메인 이름> 및 <com> 자리 표시자에 사용자 조직의 올바른 이름을 대신 사용합니다.
자세한 내용은 Microsoft 기술 자료에서 문서 281271( http://go.microsoft.com/fwlink/?LinkID=95695)을 참조하세요.
인증서 게시
인증서를 게시하려면:
CA를 호스트하는 컴퓨터에서 [시작]을 클릭하고 cmd를 입력한 다음 <Enter> 키를 누릅니다.
ping <IP 주소>를 입력하고 <Enter> 키를 눌러 네트워크에 연결되어 있는지 확인합니다. 여기서 <IP 주소>는 도메인 컨트롤러의 IP 주소입니다. 네트워크에 연결되어 있지 않으면 해결하고 다시 시도합니다.
명령 프롬프트에서 certutil -dspublish <cert.cer> ldap:///<이벤트 로그 메시지에 포함된 네트워크 위치>를 입력하고 <Enter> 키를 누릅니다. <Cert.cer>은 인증서 내보내기 마법사를 사용하여 내보낸 인증서 파일입니다.
연결되어 있더라도 인증서를 게시할 수 없는 경우 Active Directory 사용자 및 컴퓨터를 사용하여 CA를 호스트하는 컴퓨터에 사용자 또는 컴퓨터 개체의 userCertificate 특성에 대한 읽기 및 쓰기 권한이 있는지 확인합니다. 이는 일반적으로 Cert Publishers 그룹의 구성원이 확인합니다.
인증서 요청 처리가 제대로 작동하는지 확인하려면:
시작을 클릭하고 certmgr.msc를 입력한 다음 Enter 키를 누릅니다.
사용자 계정 컨트롤 대화 상자가 나타나면 표시되는 작업이 원하는 작업인지 확인한 다음 계속을 클릭합니다.
콘솔 트리에서 개인을 두 번 클릭한 다음 인증서를 클릭합니다.
작업 메뉴에서 모든 작업을 가리킨 후 새 인증서 요청을 클릭하여 인증서 등록 마법사를 시작합니다.
마법사를 사용하면 사용 가능한 모든 유형의 인증서에 대한 인증서 요청을 만들고 제출할 수 있습니다.
인증서 설치 결과에서 등록이 성공적으로 완료되었고 보고된 오류가 없는지 확인합니다. 또한 세부 정보를 클릭하면 인증서에 대한 자세한 내용을 볼 수 있습니다.
Target | Microsoft.Windows.CertificateServices.CARole.2016 |
Category | EventCollection |
Enabled | True |
Event_ID | 80 |
Event Source | Microsoft-Windows-CertificationAuthority |
Alert Generate | False |
Remotable | True |
Event Log | Application |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
WriteToCertSvcEvents | WriteAction | Microsoft.Windows.CertificateServices.CARole.CertSvcEvents.Publisher | Default |
WriteToDB | WriteAction | Microsoft.SystemCenter.CollectEvent | Default |
<Rule ID="Microsoft.Windows.CertificateServices.CARole.2016.CertSvcEvents.80" Enabled="true" Target="CSDisc!Microsoft.Windows.CertificateServices.CARole.2016" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">80</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-CertificationAuthority</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WriteToDB" TypeID="SC!Microsoft.SystemCenter.CollectEvent"/>
<WriteAction ID="WriteToCertSvcEvents" TypeID="Microsoft.Windows.CertificateServices.CARole.CertSvcEvents.Publisher"/>
</WriteActions>
</Rule>