다음을 통해 공유


사용자 지정 포트에서 인증서 키 기반 갱신을 위한 인증서 등록 웹 서비스 구성

작성자: Jitesh Thakur, Meera Mohideen, Windows 그룹의 기술 고문. Windows 그룹을 사용하는 Ankit Tyagi 지원 엔지니어

Summary

이 문서에서는 CEP 및 CES의 자동 갱신 기능을 활용하기 위해 인증서 키 기반 갱신을 위해 443 이외의 사용자 지정 포트에서 CEP(인증서 등록 정책 웹 서비스) 및 CES(인증서 등록 웹 서비스)를 구현하는 단계별 지침을 제공합니다.

또한 이 문서에서는 CEP 및 CES의 작동 방식을 설명하고 설정 지침을 제공합니다.

Note

이 문서에 포함된 워크플로는 특정 시나리오에 적용됩니다. 다른 상황에서는 동일한 워크플로가 작동하지 않을 수 있습니다. 그러나 원칙은 동일하게 유지됩니다.

고지 사항: 이 설정은 CEP 및 CES 서버의 기본 HTTPS 통신에 포트 443을 사용하지 않으려는 특정 요구 사항에 대해 생성됩니다. 이 설정은 가능하지만 지원 가능성은 제한적입니다. 제공된 웹 서버 구성에서 최소 편차를 사용하여 이 가이드를 신중하게 따르는 경우 고객 서비스 및 지원이 가장 도움이 될 수 있습니다.

Scenario

이 예제의 지침은 다음 구성을 사용하는 환경을 기반으로 합니다.

  • AD CS(Active Directory Certificate Services) PKI(공개 키 인프라)가 있는 Contoso.com 포리스트입니다.

  • 서비스 계정으로 실행되는 한 서버에 구성된 두 개의 CEP/CES 인스턴스입니다. 한 인스턴스는 초기 등록에 사용자 이름과 암호를 사용합니다. 다른 하나는 갱신 전용 모드에서 키 기반 갱신에 인증서 기반 인증을 사용합니다.

  • 사용자에게 사용자 이름 및 암호 자격 증명을 사용하여 컴퓨터 인증서를 등록할 작업 그룹 또는 도메인에 가입되지 않은 컴퓨터가 있습니다.

  • HTTPS를 통해 사용자에서 CEP 및 CES로의 연결은 49999와 같은 사용자 지정 포트에서 발생합니다. (이 포트는 동적 포트 범위에서 선택되며 다른 서비스에서 정적 포트로 사용되지 않습니다.)

  • 인증서 수명이 거의 끝나갈 때 컴퓨터는 인증서 기반 CES 키 기반 갱신을 사용하여 동일한 채널을 통해 인증서를 갱신합니다.

deployment

Configuration instructions

Overview

  1. 키 기반 갱신을 위해 템플릿을 구성합니다.

  2. 필수 조건으로 사용자 이름 및 암호 인증을 위해 CEP 및 CES 서버를 구성합니다. 이 환경에서는 인스턴스를 "CEPCES01"라고 합니다.

  3. 동일한 서버에서 인증서 기반 인증에 PowerShell을 사용하여 다른 CEP 및 CES 인스턴스를 구성합니다. CES 인스턴스는 서비스 계정을 사용합니다.

    이 환경에서는 인스턴스를 "CEPCES02"라고 합니다. 사용되는 서비스 계정은 "cepcessvc"입니다.

  4. 클라이언트 쪽 설정을 구성합니다.

Configuration

이 섹션에서는 초기 등록을 구성하는 단계를 제공합니다.

Note

CES가 작동하도록 사용자 서비스 계정, MSA 또는 GMSA를 구성할 수도 있습니다.

필수 조건으로 사용자 이름 및 암호 인증을 사용하여 서버에서 CEP 및 CES를 구성해야 합니다.

키 기반 갱신을 위한 템플릿 구성

기존 컴퓨터 템플릿을 복제하고 템플릿의 다음 설정을 구성할 수 있습니다.

  1. 인증서 템플릿의 주체 이름 탭에서, 요청 에 있는 공급 및 자동 등록 갱신 요청에 대한 기존 인증서의 주체 정보 사용 옵션이 선택되어 있는지 확인합니다. New Templates

  2. Switch to the Issuance Requirements tab, and then select the CA certificate manager approval check box. Issuance Requirements

  3. Assign the Read and Enroll permission to the cepcessvc service account for this template.

  4. CA에 새 템플릿을 게시합니다.

Note

호환성이 Windows Server 2016 이상 버전으로 설정된 경우 템플릿이 표시되지 않는 알려진 문제가 있으므로 템플릿의 호환성 설정이 Windows Server 2012 R2 설정되었는지 확인합니다. 자세한 내용은 Windows Server 2016 이상 기반 CA 또는 CEP 서버에서 Windows Server 2016 CA 호환 인증서 템플릿을 선택할 수 없는 문제을 참조하십시오.

CEPCES01 인스턴스 구성

1단계: 인스턴스 설치

CEPCES01 인스턴스를 설치하려면 다음 방법 중 하나를 사용합니다.

Method 1

사용자 이름 및 암호 인증에 CEP 및 CES를 사용하도록 설정하는 단계별 지침은 다음 문서를 참조하세요.

인증서 등록 정책 웹 서비스 지침

인증서 등록 웹 서비스 안내

Note

사용자 이름과 암호 인증의 CEP 및 CES 인스턴스를 모두 구성하는 경우 "Key-Based 갱신 사용" 옵션을 선택하지 않도록 합니다.

Method 2

다음 PowerShell cmdlet을 사용하여 CEP 및 CES 인스턴스를 설치할 수 있습니다.

Import-Module ServerManager
Add-WindowsFeature Adcs-Enroll-Web-Pol
Add-WindowsFeature Adcs-Enroll-Web-Svc
Install-AdcsEnrollmentPolicyWebService -AuthenticationType Username -SSLCertThumbprint "sslCertThumbPrint"

이 명령은 사용자 이름과 암호가 인증에 사용되도록 지정하여 CEP(인증서 등록 정책 웹 서비스)를 설치합니다.

Note

In this command, <SSLCertThumbPrint> is the thumbprint of the certificate to bind IIS.

Install-AdcsEnrollmentWebService -ApplicationPoolIdentity -CAConfig "CA1.contoso.com\contoso-CA1-CA" -SSLCertThumbprint "sslCertThumbPrint" -AuthenticationType Username

This command installs the Certificate Enrollment Web Service (CES) to use the certification authority for a computer name of CA1.contoso.com and a CA common name of contoso-CA1-CA. CES의 ID는 기본 애플리케이션 풀 ID로 지정됩니다. The authentication type is username. SSLCertThumbPrint는 IIS를 바인딩하는 인증서의 지문입니다.

2단계: IIS(인터넷 정보 서비스) 관리자 콘솔 확인

설치가 성공적으로 완료되면 IIS(인터넷 정보 서비스) 관리자 콘솔에 다음 표시가 표시됩니다. 인터넷 정보 서비스 관리자 콘솔을 보여 주는 스크린샷

기본 웹 사이트 아래에서, ADPolicyProvider_CEP_UsernamePassword을 선택한 후, 애플리케이션 설정을 엽니다. Note the ID and the URI.

You can add a Friendly Name for management.

CEPCES02 인스턴스 구성

1단계: 동일한 서버에 키 기반 갱신을 위해 CEP 및 CES를 설치합니다.

PowerShell에서 다음 명령을 실행합니다.

Install-AdcsEnrollmentPolicyWebService -AuthenticationType Certificate -SSLCertThumbprint "sslCertThumbPrint" -KeyBasedRenewal

이 명령은 CEP(인증서 등록 정책 웹 서비스)를 설치하고 인증서가 인증에 사용되도록 지정합니다.

Note

이 명령에서 <SSLCertThumbPrint> IIS를 바인딩하는 인증서의 지문입니다.

키 기반 갱신을 통해 인증서 클라이언트는 인증을 위해 기존 인증서의 키를 사용하여 인증서를 갱신할 수 있습니다. 키 기반 갱신 모드에서 서비스는 키 기반 갱신에 대해 설정된 인증서 템플릿만 반환합니다.

Install-AdcsEnrollmentWebService -CAConfig "CA1.contoso.com\contoso-CA1-CA" -SSLCertThumbprint "sslCertThumbPrint" -AuthenticationType Certificate -ServiceAccountName "Contoso\cepcessvc" -ServiceAccountPassword (read-host "Set user password" -assecurestring) -RenewalOnly -AllowKeyBasedRenewal

This command installs the Certificate Enrollment Web Service (CES) to use the certification authority for a computer name of CA1.contoso.com and a CA common name of contoso-CA1-CA.

In this command, the identity of the Certificate Enrollment Web Service is specified as the cepcessvc service account. The authentication type is certificate. SSLCertThumbPrint is the thumbprint of the certificate to bind IIS.

The RenewalOnly cmdlet lets CES run in renewal only mode. The AllowKeyBasedRenewal cmdlet also specifies that the CES accepts key based renewal requests for the enrollment server. 보안 주체에 직접 매핑되지 않는 인증에 유효한 클라이언트 인증서입니다.

Note

The service account must be part of IIS_IUSRS group on the server.

2단계 IIS 관리자 콘솔 확인

설치가 성공적으로 완료되면 IIS 관리자 콘솔에 다음 표시가 표시됩니다. IIS manager

Select KeyBasedRenewal_ADPolicyProvider_CEP_Certificate under Default Web Site and open Application Settings. Take a note of the ID and the URI. You can add a Friendly Name for management.

Note

인스턴스가 새 서버에 설치된 경우 ID를 다시 확인하여 ID가 CEPCES01 인스턴스에서 생성된 ID와 동일한지 확인합니다. 값이 다른 경우 직접 복사하여 붙여넣을 수 있습니다.

인증서 등록 웹 서비스 구성 완료

CEP 및 CES 기능에 대한 인증서를 등록하려면 Active Directory에서 작업 그룹의 컴퓨터 계정을 구성한 다음 서비스 계정에서 제한된 위임을 구성해야 합니다.

1단계: Active Directory에서 작업 그룹 컴퓨터의 컴퓨터 계정 만들기

이 계정은 키 기반 갱신에 대한 인증 및 인증서 템플릿의 Active Directory에 게시 옵션에 사용됩니다.

Note

클라이언트 머신을 도메인에 연결할 필요가 없습니다.

New Object

2단계: 제한된 위임에 대한 서비스 계정 구성(S4U2 자체)

다음 PowerShell 명령을 실행하여 제한된 위임(S4U2Self 또는 모든 인증 프로토콜)을 사용하도록 설정합니다.

Get-ADUser -Identity cepcessvc | Set-ADAccountControl -TrustedToAuthForDelegation $True
Set-ADUser -Identity cepcessvc -Add @{'msDS-AllowedToDelegateTo'=@('HOST/CA1.contoso.com','RPCSS/CA1.contoso.com')}

Note

이 명령에서 <cepcessvc> 서비스 계정이며 <CA1.contoso.com> 인증 기관입니다.

Important

제한된 위임을 사용하여 동일한 작업을 수행하므로 이 구성에서 CA에서 RENEWALONBEHALOF 플래그를 사용하도록 설정하지 않습니다. 이렇게 하면 CA의 보안에 서비스 계정에 대한 사용 권한을 추가하지 않도록 할 수 있습니다.

3단계: IIS 웹 서버에서 사용자 지정 포트 구성
  1. IIS 관리자 콘솔에서 기본 웹 사이트를 선택합니다.

  2. 작업 창에서 사이트 바인딩 편집을 선택합니다.

  3. 기본 포트 설정을 443에서 사용자 지정 포트로 변경합니다. 예제 스크린샷은 49999의 포트 설정을 보여줍니다. Change port

4단계: Active Directory에서 CA 등록 서비스 개체 편집
  1. 도메인 컨트롤러에서 adsiedit.msc를 엽니다.

  2. 구성 파티션연결하고 CA 등록 서비스 개체로 이동합니다.

    CN=ENTCA,CN=등록 서비스,CN=공개 키 서비스,CN=서비스,CN=구성,DC=contoso,DC=com

  3. CA 개체를 마우스 오른쪽 단추로 클릭하고 편집합니다. Change the msPKI-Enrollment-Servers attribute by using the custom port with your CEP and CES server URIs that were found in the application settings. For example:

    140https://cepces.contoso.com:49999/ENTCA_CES_UsernamePassword/service.svc/CES0
    181https://cepces.contoso.com:49999/ENTCA_CES_Certificate/service.svc/CES1
    

    ADSI Edit

클라이언트 컴퓨터 구성

클라이언트 컴퓨터에서 등록 정책 및 자동 등록 정책을 설정합니다. 이렇게 하려면 다음 단계를 수행합니다.

  1. Select Start>Run, and then enter gpedit.msc.

  2. Go to Computer Configuration>Windows Settings>Security Settings, and then click Public Key Policies.

  3. 다음 스크린샷의 설정과 일치하도록 Certificate Services 클라이언트 - 자동 등록 정책을 설정하십시오. 인증서 그룹 정책

  4. 인증서 서비스 클라이언트 활성화 - 인증서 등록 정책.

    a. Click Add to add enrollment policy and enter the CEP URI with UsernamePassword that we edited in ADSI.

    b. For Authentication type, select Username/password.

    c. Set a priority of 10, and then validate the policy server. 우선 순위를 설정할 위치를 보여 주는 스크린샷

    Note

    포트 번호가 URI에 추가되고 방화벽에서 허용되는지 확인합니다.

  5. certlm.msc를 통해 컴퓨터에 대한 첫 번째 인증서를 등록합니다. 인증서 등록 정책을 선택할 위치를 보여 주는 스크린샷

    KBR 템플릿을 선택하고 인증서를 등록합니다. K B R 템플릿을 선택할 위치를 보여 주는 스크린샷

  6. Open gpedit.msc again. Certificate Services 클라이언트 – 인증서 등록 정책편집한 다음 키 기반 갱신 등록 정책을 추가합니다.

    a. Click Add, enter the CEP URI with Certificate that we edited in ADSI.

    b. Set a priority of 1, and then validate the policy server. 처음에 등록한 인증서를 인증하고 선택하라는 메시지가 표시됩니다.

    Enrollment Policy

Note

키 기반 갱신 등록 정책의 우선 순위 값이 사용자 이름 암호 등록 정책 우선 순위보다 낮은지 확인합니다. 첫 번째 기본 설정은 가장 낮은 우선 순위에 지정됩니다.

설치 테스트

자동 갱신이 작동하는지 확인하려면 mmc를 사용하여 동일한 키를 사용하여 인증서를 갱신하여 수동 갱신이 작동하는지 확인합니다. 또한 갱신하는 동안 인증서를 선택하라는 메시지가 표시됩니다. 이전에 등록한 인증서를 선택할 수 있습니다. 프롬프트가 예상됩니다.

컴퓨터 개인 인증서 저장소를 열고 보관된 인증서 보기를 추가합니다. 이렇게 하려면 로컬 컴퓨터 계정 스냅인을 mmc.exe추가하고, 인증서(로컬 컴퓨터)를 클릭하여 강조 표시한 다음, 오른쪽이나 mmc의 맨 위에 있는 작업 탭에서 보기를 클릭하고, 보기 옵션 을 클릭한 후, 보관된 인증서를 선택한 다음, 확인을 클릭합니다.

Method 1

다음 명령을 실행합니다.

certreq -machine -q -enroll -cert <thumbprint> renew

Method 2

클라이언트 컴퓨터의 시간과 날짜를 인증서 템플릿의 갱신 시간으로 이동합니다.

예를 들어 인증서 템플릿에는 2일 유효성 설정과 8시간 갱신 설정이 구성됩니다. 예제 인증서는 매월 18일 오전 4:00에 발급되었으며 20일 오전 4:00에 만료됩니다. 자동 등록 엔진은 다시 시작 시와 8시간 간격(대략)마다 트리거됩니다.

따라서 갱신 윈도우가 템플릿에서 8시간으로 설정된 경우, 시간을 19일 오후 8시 10분으로 맞추면 Certutil -pulse(AE 엔진을 트리거하기 위해)를 실행하여 인증서를 등록할 수 있습니다.

command

테스트가 완료되면 시간 설정을 원래 값으로 되돌려 클라이언트 컴퓨터를 다시 시작합니다.

Note

이전 스크린샷은 CA 날짜가 여전히 18일로 설정되어 있기 때문에 자동 등록 엔진이 예상대로 작동하는지 보여 주는 예제입니다. 따라서 인증서를 계속 발급합니다. 실제 상황에서는 이러한 많은 수의 갱신이 발생하지 않습니다.

References

테스트 랩 가이드: 인증서 Key-Based 갱신 시연

인증서 등록 웹 서비스

Install-AdcsEnrollmentPolicyWebService

Install-AdcsEnrollmentWebService

See also

Windows Server 보안 포럼

AD CS(Active Directory 인증서 서비스) PKI(공개 키 인프라)에 대한 FAQ(질문과 대답)

Windows PKI 설명서 참조 및 라이브러리

Windows PKI 블로그

웹 등록 프록시 페이지에 대한 사용자 지정 서비스 계정에서 Kerberos 제한 위임(S4U2Proxy 또는 Kerberos만 해당)을 구성하는 방법