다음을 통해 공유


CAPolicy.inf 구문

적용 대상: Windows Server 2016

CAPolicy.inf는 루트 CA 인증서 및 루트 CA에서 발급한 모든 인증서에 적용되는 확장, 제약 조건 및 기타 구성 설정을 정의하는 구성 파일입니다. 루트 CA에 대한 설정 루틴이 시작되기 전에 호스트 서버에 CAPolicy.inf 파일을 설치해야 합니다. 루트 CA에 대한 보안 제한을 수정하려면 갱신 프로세스가 시작되기 전에 루트 인증서를 갱신하고 업데이트된 CAPolicy.inf 파일을 서버에 설치해야 합니다.

CAPolicy.inf는 다음과 같습니다.

  • 관리자가 수동으로 만들고 정의

  • 루트 및 하위 CA 인증서를 만드는 동안 활용됨

  • 인증서에 서명하고 발급하는 서명 CA에 정의됨(요청이 부여된 CA 아님)

CAPolicy.inf 파일을 만든 후에는 ADCS를 설치하거나 CA 인증서를 갱신하기 전에 서버의 %systemroot% 폴더에 복사해야 합니다.

CAPolicy.inf를 사용하면 다양한 CA 특성 및 옵션을 지정하고 구성할 수 있습니다. 다음 섹션에서는 특정 요구 사항에 맞는 .inf 파일을 만드는 데 사용할 수 있는 모든 옵션에 대해 설명합니다.

CAPolicy.inf 파일 구조

.inf 파일 구조를 설명하는 데 사용되는 용어는 다음과 같습니다.

  • 섹션 – 키의 논리적 그룹을 포함하는 파일의 영역입니다. .inf 파일의 섹션 이름은 대괄호 안에 표시되어 식별됩니다. 전부는 아니지만 많은 섹션이 인증서 확장을 구성하는 데 사용됩니다.

  • – 항목의 이름이며 등호 왼쪽에 표시됩니다.

  • – 매개 변수이며 등호 오른쪽에 표시됩니다.

다음 예제에서 [Version]은 섹션이고, Signature는 키이며, "$Windows NT$"는 값입니다.

예시:

[Version]
Signature="$Windows NT$"

버전

파일을 .inf 파일로 식별합니다. 버전은 유일한 필수 섹션이며 CAPolicy.inf 파일의 시작 부분에 있어야 합니다.

PolicyStatementExtension

조직에서 정의한 정책과 선택 사항인지 필수인지 여부를 나열합니다. 여러 정책은 쉼표로 구분됩니다. 이름은 특정 배포의 컨텍스트 또는 이러한 정책의 존재를 확인하는 사용자 지정 애플리케이션과 관련하여 의미가 있습니다.

정의된 각 정책에 대해 해당 특정 정책에 대한 설정을 정의하는 섹션이 있어야 합니다. 각 정책에 대해 OID(사용자 정의 개체 식별자) 및 정책 문으로 표시할 텍스트 또는 정책 문에 대한 URL 포인터를 제공해야 합니다. URL은 HTTP, FTP 또는 LDAP URL 형식일 수 있습니다.

정책 문에 설명 텍스트가 있는 경우 CAPolicy.inf의 다음 세 줄은 다음과 같습니다.

[InternalPolicy]
OID=1.1.1.1.1.1.1
Notice="Legal policy statement text"

URL을 사용하여 CA 정책 문을 호스트하려는 경우 다음 세 줄은 다음과 같습니다.

[InternalPolicy]
OID=1.1.1.1.1.1.2
URL=https://pki.wingtiptoys.com/policies/legalpolicy.asp

또한 다음 사항에 유의해야 합니다.

  • 여러 URL 및 알림 키가 지원됩니다.

  • 동일한 정책 섹션의 URL 키와 알림이 지원됩니다.

  • 공백이 있는 URL이나 텍스트는 따옴표로 묶어야 합니다. 이는 URL 키가 표시되는 섹션에 관계없이 해당됩니다.

정책 섹션의 여러 알림 및 URL 예는 다음과 같습니다.

[InternalPolicy]
OID=1.1.1.1.1.1.1
URL=https://pki.wingtiptoys.com/policies/legalpolicy.asp
URL=ftp://ftp.wingtiptoys.com/pki/policies/legalpolicy.asp
Notice="Legal policy statement text"

CRLDistributionPoint

CAPolicy.inf에서 루트 CA 인증서에 대한 CRL CDP(배포 지점)를 지정할 수 있습니다. CA를 설치한 후 CA가 발급한 각 인증서에 포함하는 CDP URL을 구성할 수 있습니다. 루트 CA 인증서는 CAPolicy.inf 파일의 이 섹션에 지정된 URL을 표시합니다.

[CRLDistributionPoint]
URL=http://pki.wingtiptoys.com/cdp/WingtipToysRootCA.crl

CRL 배포 지점(CDP) 지원:

  • HTTP
  • 파일 URL
  • LDAP URL
  • 여러 URL

Important

CRL 배포 지점(CDP)은 HTTPS URL을 지원하지 않습니다.

  • 따옴표는 URL을 공백으로 묶어야 합니다.

  • URL이 지정되지 않은 경우, 즉 [CRLDistributionPoint] 섹션이 파일에 있지만 비어 있으면 CRL 배포 지점 확장이 루트 CA 인증서에서 생략됩니다. 루트 CA를 설정할 때 이 옵션을 사용하는 것이 좋습니다. Windows는 루트 CA 인증서에 대한 해지 확인을 수행하지 않으므로 루트 CA 인증서에서 CDP 확장이 불필요합니다.

  • 예를 들어 CA는 클라이언트가 HTTP를 통해 검색하는 웹 사이트의 폴더를 나타내는 공유에 FILE UNC에 게시할 수 있습니다.

  • 루트 CA를 설정하거나 루트 CA 인증서를 갱신하는 경우에만 이 섹션을 사용합니다. CA는 하위 CA CDP 확장을 결정합니다.

AuthorityInformationAccess

루트 CA 인증서에 대한 CAPolicy.inf에서 기관 정보 액세스 지점을 지정할 수 있습니다.

[AuthorityInformationAccess]
URL=http://pki.wingtiptoys.com/Public/myCA.crt

기관 정보 액세스 섹션에 대한 몇 가지 추가 참고 사항:

  • 여러 URL이 지원됩니다.

  • HTTP, FTP, LDAP 및 FILE URL이 지원됩니다. HTTPS URL은 지원되지 않습니다.

  • 이 섹션은 루트 CA를 설정하거나 루트 CA 인증서를 갱신하는 경우에만 사용됩니다. 하위 CA AIA 확장은 하위 CA의 인증서를 발급한 CA에 의해 결정됩니다.

  • 공백이 있는 URL은 따옴표로 묶어야 합니다.

  • URL이 지정되지 않은 경우, 즉 [AuthorityInformationAccess] 섹션이 파일에 있지만 비어 있는 경우 루트 CA 인증서에서 기관 정보 액세스 확장이 생략됩니다. 다시 말하지만, 인증서에 대한 링크에서 참조해야 하는 루트 CA보다 높은 권한이 없는 경우 이 설정이 기본 설정이 됩니다.

certsrv_Server

CAPolicy.inf의 [certsrv_server] 섹션은 선택 사항입니다. [certsrv_server]는 갱신 키 길이, 갱신 유효 기간 및 갱신 또는 설치 중인 CA에 대한 CRL(인증서 해지 목록) 유효 기간을 지정하는 데 사용됩니다. 이 섹션의 키는 필요하지 않습니다. 이러한 설정의 대부분은 대부분의 요구 사항에 충분하고 CAPolicy.inf 파일에서 생략할 수 있는 기본값을 가집니다. 또는 CA가 설치된 후 이러한 설정의 대부분을 변경할 수 있습니다.

예를 들어 다음과 같습니다.

[certsrv_server]
RenewalKeyLength=2048
RenewalValidityPeriod=Years
RenewalValidityPeriodUnits=5
CRLPeriod=Days
CRLPeriodUnits=2
CRLDeltaPeriod=Hours
CRLDeltaPeriodUnits=4
ClockSkewMinutes=20
LoadDefaultTemplates=True
AlternateSignatureAlgorithm=0
ForceUTF8=0
EnableKeyCounting=0

RenewalKeyLength는 갱신에 대한 키 크기만 설정합니다. CA 인증서를 갱신하는 동안 새 키 쌍이 생성되는 경우에만 사용됩니다. 초기 CA 인증서의 키 크기는 CA가 설치될 때 설정됩니다.

새 키 쌍을 사용하여 CA 인증서를 갱신하는 경우 키 길이를 늘리거나 줄일 수 있습니다. 예를 들어 루트 CA 키 크기를 4096바이트 이상으로 설정한 다음 2048바이트 키 크기만 지원할 수 있는 Java 앱 또는 네트워크 디바이스가 있음을 발견합니다. 크기를 늘리거나 줄이든 관계없이 해당 CA에서 발급한 모든 인증서를 다시 발급해야 합니다.

RenewalValidityPeriodRenewalValidityPeriodUnits는 이전 루트 CA 인증서를 갱신할 때 새 루트 CA 인증서의 수명을 설정합니다. 루트 CA에만 적용됩니다. 하위 CA의 인증서 수명은 해당 상위 CA에 의해 결정됩니다. RenewalValidityPeriod에는 시간, 일, 주, 월 및 연도 값이 있을 수 있습니다.

CRLPeriodCRLPeriodUnits는 기본 CRL의 유효 기간을 설정합니다. CRLPeriod에는 시간, 일, 주, 월 및 연도 값이 있을 수 있습니다.

CRLDeltaPeriodCRLDeltaPeriodUnits는 델타 CRL의 유효 기간을 설정합니다. CRLDeltaPeriod에는 시간, 일, 주, 월 및 연도 값이 있을 수 있습니다.

이러한 각 설정은 CA가 설치된 후에 구성할 수 있습니다.

Certutil -setreg CACRLPeriod Weeks
Certutil -setreg CACRLPeriodUnits 1
Certutil -setreg CACRLDeltaPeriod Days
Certutil -setreg CACRLDeltaPeriodUnits 1

변경 내용을 적용하려면 Active Directory 인증서 서비스를 다시 시작해야 합니다.

LoadDefaultTemplates는 엔터프라이즈 CA를 설치하는 동안에만 적용됩니다. 이 설정(True 또는 False 또는 1 또는 0)은 CA가 기본 템플릿으로 구성되어 있는지 여부를 결정합니다.

CA의 기본 설치에서 기본 인증서 템플릿의 하위 집합이 인증 기관 스냅인의 인증서 템플릿 폴더에 추가됩니다. 즉, 역할이 설치된 후 AD CS 서비스가 시작되는 즉시 충분한 권한이 있는 사용자 또는 컴퓨터가 인증서에 즉시 등록할 수 있습니다.

CA가 설치된 직후에는 인증서를 발급하지 않을 수 있으므로 LoadDefaultTemplates 설정을 사용하여 기본 템플릿이 Enterprise CA에 추가되지 않도록 할 수 있습니다. CA에 구성된 템플릿이 없는 경우 인증서를 발급할 수 없습니다.

AlternateSignatureAlgorithm은 CA 인증서 및 인증서 요청 모두에 대해 PKCS#1 V2.1 서명 형식을 지원하도록 CA를 구성합니다. 루트 CA에서 1로 설정하면 CA 인증서에 PKCS#1 V2.1 서명 형식이 포함됩니다. 하위 CA에 설정된 경우 하위 CA는 PKCS#1 V2.1 서명 형식을 포함하는 인증서 요청을 만듭니다.

ForceUTF8은 주체 및 발급자 고유 이름의 RDN(상대 고유 이름)의 기본 인코딩을 UTF-8로 변경합니다. RFC에 의해 디렉터리 문자열 형식으로 정의된 RDN과 같이 UTF-8을 지원하는 RDN만 영향을 받습니다. 예를 들어 DC(도메인 구성 요소)용 RDN는 IA5 또는 UTF-8로 인코딩을 지원하지만, 국가 RDN(C)은 인쇄 가능한 문자열로 인코딩만 지원합니다. 따라서 ForceUTF8 지시문은 DC RDN에 영향을 주지만 C RDN에는 영향을 주지 않습니다.

EnableKeyCounting은 CA의 서명 키를 사용할 때마다 카운터를 증가하도록 CA를 구성합니다. 키 계산을 지원하는 HSM(하드웨어 보안 모듈) 및 연결된 CSP(암호화 서비스 공급자)가 없는 한 이 설정을 사용하도록 설정하지 마세요. 키 계산은 Microsoft Strong CSP 또는 Microsoft 소프트웨어 KSP(키 스토리지 공급자) 지원에서 지원되지 않습니다.

CAPolicy.inf 파일 만들기

AD CS를 설치 하기 전에 구성한 CAPolicy.inf 파일 특정 설정을 사용 하 여 배포 합니다.

필수 조건: 관리자 그룹의 구성원이어야 합니다.

  1. AD CS를 설치하려는 컴퓨터에서 Windows PowerShell을 열고 notepad.exe를 입력한 다음 ENTER 키를 누릅니다.

  2. 다음 텍스트를 입력합니다.

    [Version]
    Signature="$Windows NT$"
    [PolicyStatementExtension]
    Policies=InternalPolicy
    [InternalPolicy]
    OID=1.2.3.4.1455.67.89.5
    Notice="Legal Policy Statement"
    URL=https://pki.corp.contoso.com/pki/cps.txt
    [Certsrv_Server]
    RenewalKeyLength=2048
    RenewalValidityPeriod=Years
    RenewalValidityPeriodUnits=5
    CRLPeriod=weeks
    CRLPeriodUnits=1
    LoadDefaultTemplates=0
    AlternateSignatureAlgorithm=1
    [CRLDistributionPoint]
    [AuthorityInformationAccess]
    
  3. 파일을 선택한 다음 다른 이름으로 저장을 선택합니다.

  4. %systemroot% 폴더로 이동합니다.

  5. 다음 옵션이 설정되어 있는지 확인합니다.

    • 파일 이름CAPolicy.inf

    • 파일 형식모든 파일

    • EncodingANSI

  6. 저장을 선택합니다.

  7. 파일을 덮어쓸지 묻는 메시지가 나타나면 를 선택합니다.

    CAPolicy.inf 파일의 다른 이름으로 저장 위치

    주의

    CAPolicy.inf를 inf 확장명으로 저장하도록 합니다. 파일 이름 끝에 .inf 를 특별히 입력하지 않고 설명된 대로 옵션을 선택하지 않는다면 파일이 텍스트 파일로 저장되고 CA 설치 중에 사용되지 않습니다.

  8. 메모장을 닫습니다.

Important

CAPolicy.inf에서 URL https://pki.corp.contoso.com/pki/cps.txt을 지정하는 줄이 있는 것을 볼 수 있습니다. CAPolicy.inf의 내부 정책 섹션은 CPS(인증서 사용 약관)의 위치를 지정하는 방법을 보여주는 예시로 제공되었습니다. 이 가이드에서는 CPS(인증서 연습 문)를 만드는 방법은 설명하지 않습니다.