certreq

certreq 명령은 CA(인증 기관)의 인증서를 요청하고, CA에서 이전 요청에 대한 응답을 검색하고, .inf 파일에서 새 요청을 만들고, 요청에 대한 응답을 수락 및 설치하고, 기존 CA 인증서 또는 요청에서 교차 인증 또는 정규화된 하위 요청을 생성하는 데 사용할 수 있습니다. 및 교차 인증 또는 정규화된 하위 요청에 서명합니다.

Important

이전 버전의 certreq 명령은 여기에 설명된 모든 옵션을 제공하지 않을 수 있습니다. 특정 버전의 certreq에 따라 지원되는 옵션을 보려면 명령줄 도움말 옵션을 certreq -v -?실행합니다.

certreq 명령은 CEP/CES 환경에서 키 증명 템플릿을 기반으로 새 인증서 요청을 만드는 것을 지원하지 않습니다.

Warning

이 항목의 내용은 Windows Server의 기본 설정을 기반으로 합니다. 예를 들어 키 길이를 2048로 설정하고, Microsoft 소프트웨어 키 스토리지 공급자를 CSP로 선택하고, SHA1(Secure Hash Algorithm 1)을 사용합니다. 회사의 보안 정책 요구 사항에 따라 이러한 선택을 평가합니다.

구문

certreq [-submit] [options] [requestfilein [certfileout [certchainfileout [fullresponsefileOut]]]]
certreq -retrieve [options] requestid [certfileout [certchainfileout [fullresponsefileOut]]]
certreq -new [options] [policyfilein [requestfileout]]
certreq -accept [options] [certchainfilein | fullresponsefilein | certfilein]
certreq -sign [options] [requestfilein [requestfileout]]
certreq –enroll [options] templatename
certreq –enroll –cert certId [options] renew [reusekeys]

매개 변수

매개 변수 설명
-전송 인증 기관에 요청을 제출합니다.
-검색 <requestid> 인증 기관에서 이전 요청에 대한 응답을 검색합니다.
-새로운 .Inf 파일에서 새 요청을 만듭니다.
-받아들일 수신 하 고 인증서 요청에 대 한 응답을 설치 합니다.
-정책 요청에 대 한 정책을 설정합니다.
-기호 상호 인증 또는 정규화 된 종속 요청을 서명합니다.
-등록 에 대 한 등록 하거나, 인증서를 갱신 합니다.
-? Certreq 구문, 옵션 및 설명의 목록을 표시합니다.
<parameter> -? 지정된 매개 변수에 대한 도움말을 표시합니다.
-v -? Certreq 구문, 옵션 및 설명의 자세한 목록이 표시 됩니다.

예제

certreq -submit

기본 인증서 요청을 제출하려면 다음을 수행합니다.

certreq –submit certrequest.req certnew.cer certnew.pfx

설명

  • 기본 certreq.exe 매개 변수입니다. 명령줄 프롬프트에 옵션이 지정되지 않은 경우 certreq.exe는 인증 기관에 인증서 요청을 제출하려고 시도합니다. –submit 옵션을 사용할 때 인증서 요청 파일을 지정해야 합니다. 이 매개 변수를 생략하면 적절한 인증서 요청 파일을 선택할 수 있는 일반적인 파일 열기 창이 나타납니다.

  • SAN 특성을 지정하여 인증서를 요청하려면 certreq.exe 유틸리티를 사용하여 보안 LDAP 인증서에 주체 대체 이름을 추가하는 방법 931351 Microsoft 기술 자료 문서의 인증서 요청 섹션을 만들고 제출하는 방법을 참조하세요.

certreq -retrieve

인증서 ID 20을 검색하고 MyCertificate라는 인증서 파일(.cer)을 만들려면:

certreq -retrieve 20 MyCertificate.cer

설명

  • certreq -retrieve requestid 를 사용하여 인증 기관에서 인증서를 발급한 후 인증서를 검색합니다. requestid PKC는 0x 접두사를 가진 10진수 또는 16진수일 수 있으며 0x 접두사 없이 인증서 일련 번호일 수 있습니다. 인증서의 요청이 보류 중 상태인지 여부를 고려하지 않고 해지 또는 만료된 인증서를 포함하여 인증 기관에서 발급한 인증서를 검색하는 데 사용할 수도 있습니다.

  • 인증 기관에 요청을 제출하는 경우 인증 기관의 정책 모듈은 요청을 보류 중인 상태로 두고 요청 id를 certreq 호출자에게 반환하여 표시할 수 있습니다. 결국 인증 기관의 관리자는 인증서를 발급하거나 요청을 거부합니다.

certreq -new

새 요청을 만들려면 다음을 수행합니다.

[newrequest]
; At least one value must be set in this section
subject = CN=W2K8-BO-DC.contoso2.com

다음은 일부 가능한 섹션 INF 파일에 추가할 수 있습니다.

[newrequest]

INF 파일의 이 영역은 새 인증서 요청 템플릿에 필수이며 값이 있는 매개 변수를 하나 이상 포함해야 합니다.

1 설명 2 예시
Subject 몇몇 앱은 인증서의 주체 정보를 사용합니다. 이 키의 값을 지정하는 것이 좋습니다. 제목이 여기에 설정되지 않은 경우 주체 대체 이름 인증서 확장의 일부로 주체 이름을 포함하는 것이 좋습니다. 상대 고유 이름 문자열 값 Subject = CN=computer1.contoso.com Subject=CN=John Smith,CN=Users,DC=Contoso,DC=com
Exportable TRUE로 설정하면 인증서를 사용하여 프라이빗 키를 내보낼 수 있습니다. 높은 수준의 보안을 보장하기 위해 프라이빗 키를 내보낼 수 없어야 합니다. 그러나 경우에 따라 여러 컴퓨터 또는 사용자가 동일한 프라이빗 키를 공유해야 하는 경우 필요할 수 있습니다. true | false Exportable = TRUE. CNG 키를이 구별할 수 및 일반 텍스트를 내보낼 수 있습니다. CAPI1 키는 사용할 수 없습니다.
ExportableEncrypted 프라이빗 키를 내보낼 수로 설정 해야 하는지 여부를 지정 합니다. true | false ExportableEncrypted = true

팁: 모든 공개 키 크기 및 알고리즘이 모든 해시 알고리즘에서 작동하는 것은 아닙니다. 지정된 CSP도 지정된 해시 알고리즘을 지원해야 합니다. 지원되는 해시 알고리즘 목록을 보려면 다음 명령을 실행할 수 있습니다. certutil -oid 1 | findstr pwszCNGAlgid | findstr /v CryptOIDInfo

HashAlgorithm 이 요청에 사용할 해시 알고리즘입니다. Sha256, sha384, sha512, sha1, md5, md4, md2 HashAlgorithm = sha1. 지원되는 해시 알고리즘 목록을 보려면 certutil -oid 1 | findstr pwszCNGAlgid | findstr /v CryptOIDInfo
KeyAlgorithm 서비스 공급자가 퍼블릭 및 프라이빗 키 쌍을 생성하는 데 사용하는 알고리즘입니다. RSA, DH, DSA, ECDH_P256, ECDH_P521, ECDSA_P256, ECDSA_P384, ECDSA_P521 KeyAlgorithm = RSA
KeyContainer 새 키 자료가 생성되는 새 요청에 대해서는 이 매개 변수를 설정하지 않는 것이 좋습니다. 키 컨테이너는 자동으로 생성 하 고 시스템에 의해 유지.

여기서는 기존 키 자료를 사용 해야 하는 요청에 대 한 기존 키의 키 컨테이너 이름으로이 값을 설정할 수 있습니다. 명령을 certutil –key 사용하여 컴퓨터 컨텍스트에 사용할 수 있는 키 컨테이너 목록을 표시합니다. certutil –key –user 현재 사용자의 컨텍스트에 대한 명령을 사용합니다.

임의 문자열 값

팁: 공백 또는 특수 문자가 있는 INF 키 값 주위에 큰따옴표를 사용하여 잠재적인 INF 구문 분석 문제를 방지합니다.

KeyContainer = {C347BD28-7F69-4090-AA16-BC58CF4D749C}
키 길이 퍼블릭 및 프라이빗 키의 길이 정의합니다. 키 길이 인증서의 보안 수준에 영향이 있습니다. 더 긴 키 길이는 일반적으로 더 높은 보안 수준; 제공 그러나 일부 애플리케이션 키 길이 관련 된 제한이 있을 수 있습니다. 암호화 서비스 공급자에서 지 원하는 모든 유효한 키 길이입니다. KeyLength = 2048
KeySpec 키 서명, Exchange (암호화), 또는 둘 다에 사용 될 수 하는 경우를 결정 합니다. AT_NONE, AT_SIGNATURE, AT_KEYEXCHANGE KeySpec = AT_KEYEXCHANGE
KeyUsage 어떤 인증서 키에 사용할지를 정의 합니다.
  • CERT_DIGITAL_SIGNATURE_KEY_USAGE -- 80 (128)
  • CERT_NON_REPUDIATION_KEY_USAGE -- 40 (64)
  • CERT_KEY_ENCIPHERMENT_KEY_USAGE -- 20 (32)
  • CERT_DATA_ENCIPHERMENT_KEY_USAGE -- 10 (16)
  • CERT_KEY_AGREEMENT_KEY_USAGE -- 8
  • CERT_KEY_CERT_SIGN_KEY_USAGE -- 4
  • CERT_OFFLINE_CRL_SIGN_KEY_USAGE -- 2
  • CERT_CRL_SIGN_KEY_USAGE -- 2
  • CERT_ENCIPHER_ONLY_KEY_USAGE -- 1
  • CERT_DECIPHER_ONLY_KEY_USAGE -- 8000 (32768)
KeyUsage = CERT_DIGITAL_SIGNATURE_KEY_USAGE | CERT_KEY_ENCIPHERMENT_KEY_USAGE

팁: 여러 값은 파이프(|) 기호 구분 기호를 사용합니다. INF 구문 분석 문제를 방지 하려면 여러 값을 사용 하는 경우 큰따옴표를 사용 하는 것을 확인 합니다. 표시되는 값은 각 비트 정의에 대한 16진수(10진수) 값입니다. 오래 된 구문을 사용할 수도 있습니다: 여러 개의 단일 16 진수 값을 비트 기호 표현 하는 대신 집합입니다. 예: KeyUsage = 0xa0.

KeyUsageProperty 프라이빗 키를 사용할 수 있는 특정 용도 식별 하는 값을 검색 합니다.
  • NCRYPT_ALLOW_DECRYPT_FLAG -- 1
  • NCRYPT_ALLOW_SIGNING_FLAG -- 2
  • NCRYPT_ALLOW_KEY_AGREEMENT_FLAG -- 4
  • NCRYPT_ALLOW_ALL_USAGES -- ffffff (16777215)
KeyUsageProperty = NCRYPT_ALLOW_DECRYPT_FLAG | NCRYPT_ALLOW_SIGNING_FLAG
MachineKeySet 이 키는 컴퓨터와 사용자가 아닌 소유 하는 인증서를 만들어야 할 때 중요 합니다. 생성 되는 키 자료의 보안 컨텍스트 보안 주체 (사용자 또는 컴퓨터 계정)가 만든 요청에에서 유지 됩니다. 관리자가 컴퓨터를 대신하여 인증서 요청을 만들 때 키 자료는 관리자의 보안 컨텍스트가 아닌 컴퓨터의 보안 컨텍스트에서 만들어야 합니다. 그렇지 않으면 컴퓨터가 관리자의 보안 컨텍스트에 있으므로 프라이빗 키에 액세스할 수 없습니다. true | false. 기본값은 false입니다. MachineKeySet = true
NotBefore 요청을 발급할 수 없는 날짜 또는 날짜 및 시간을 지정합니다. NotBefore와 함께 ValidityPeriod 사용할 수 있습니다.ValidityPeriodUnits 날짜 또는 날짜 및 시간 NotBefore = 7/24/2012 10:31 AM

팁:NotBefore R NotAfterequestType=cert 전용입니다. 로캘을 구분하는 날짜 구문 분석 시도입니다. 월 이름을 사용하면 명확하게 구분되며 모든 로캘에서 작동해야 합니다.

NotAfter 요청을 발급할 수 없는 날짜 또는 날짜 및 시간을 지정합니다. NotAfter와 함께 사용할 ValidityPeriodUnits수 없거나 .와 함께 ValidityPeriod 사용할 수 없습니다. 날짜 또는 날짜 및 시간 NotAfter = 9/23/2014 10:31 AM

팁:NotBefore 전용 NotAfter 입니다 RequestType=cert . 로캘을 구분하는 날짜 구문 분석 시도입니다. 월 이름을 사용하면 명확하게 구분되며 모든 로캘에서 작동해야 합니다.

PrivateKeyArchive PrivateKeyArchive 설정은 CMS(CMS)를 통해 인증서 관리 메시지만 키 보관을 위해 요청자의 프라이빗 키를 CA로 안전하게 전송할 수 있기 때문에 해당 RequestType이 CMC로 설정된 경우에만 작동합니다. true | false PrivateKeyArchive = true
EncryptionAlgorithm 사용할 암호화 알고리즘입니다. 가능한 옵션은 운영 체제 버전 및 설치된 암호화 공급자 집합에 따라 달라집니다. 사용 가능한 알고리즘 목록을 보려면 다음 명령을 certutil -oid 2 | findstr pwszCNGAlgid실행합니다. 사용된 지정된 CSP는 지정된 대칭 암호화 알고리즘 및 길이도 지원해야 합니다. EncryptionAlgorithm = 3des
EncryptionLength 사용할 암호화 알고리즘의 길이입니다. 지정한 EncryptionAlgorithm에서 허용 된 길이입니다. EncryptionLength = 128
ProviderName 공급자 이름은 CSP의 표시 이름입니다. 사용 중인 CSP의 공급자 이름을 모르는 경우 명령줄에서 실행 certutil –csplist 합니다. 이 명령은 로컬 시스템에서 사용할 수 있는 모든 CSP의 이름을 표시합니다. ProviderName = Microsoft RSA SChannel Cryptographic Provider
ProviderType 공급자 유형은 RSA Full과 같은 특정 알고리즘 기능을 기반으로 특정 공급자를 선택하는 데 사용됩니다. 사용 중인 CSP의 공급자 유형을 모르는 경우 명령줄 프롬프트에서 실행 certutil –csplist 합니다. 이 명령은 로컬 시스템에서 사용할 수 있는 모든 CSP의 공급자 유형을 표시합니다. ProviderType = 1
RenewalCert 인증서 요청 생성 된 경우 시스템에 존재 하는 인증서를 갱신 해야 하는 경우에이 키에 대 한 값으로 인증서 해시를 지정 해야 합니다. 인증서 요청을 만들 되는 컴퓨터에서 사용할 수 있는 모든 인증서의 인증서 해시입니다. 인증서 해시를 모르는 경우 인증서 MMC 스냅인을 사용하고 갱신해야 하는 인증서를 확인합니다. 인증서 속성을 열고 인증서의 특성을 확인 Thumbprint 합니다. 인증서 갱신에는 PKCS#7 요청 형식 또는 요청 형식이 CMC 필요합니다. RenewalCert = 4EDF274BD2919C6E9EC6A522F0F3B153E9B1582D
RequesterName 다른 사용자 요청을 대신하여 등록하도록 요청합니다. 또한 등록 에이전트 인증서를 사용하여 요청에 서명해야 합니다. 그렇지 않으면 CA가 요청을 거부합니다. 이 -cert 옵션을 사용하여 등록 에이전트 인증서를 지정합니다. 인증서 요청이 설정된 PKCS#7CMC경우 RequestType 요청자 이름을 지정할 수 있습니다. 이 RequestType 키를 설정 PKCS#10하면 이 키가 무시됩니다. 요청 Requestername 의 일부로만 설정할 수 있습니다. 보류 중인 요청에서는 조작할 Requestername 수 없습니다. Domain\User Requestername = Contoso\BSmith
RequestType 생성 하 고 인증서 요청을 전송 하는 데 사용 되는 표준에 따라 결정 됩니다.
  • PKCS10 -- 1
  • PKCS7 -- 2
  • CMC -- 3
  • Cert -- 4
  • SCEP -- fd00 (64768)
팁: 이 옵션은 자체 서명되거나 자체 발급된 인증서를 나타냅니다. 요청이 아니라 새 인증서를 생성한 다음 인증서를 설치합니다. 자체 서명이 기본값입니다. -cert 옵션을 사용하여 자체 서명되지 않은 자체 발급 인증서를 만들어 서명 인증서를 지정합니다.
RequestType = CMC
SecurityDescriptor 보안 개체와 연결된 보안 정보를 포함합니다. 대부분의 보안 개체의 경우 개체를 만드는 함수 호출에서 개체의 보안 설명자를 지정할 수 있습니다. 보안 설명자 정의 언어를 기반으로 하는 문자열입니다.

팁: 이는 스마트하지 않은 컴퓨터 컨텍스트 카드 키에만 관련됩니다.

SecurityDescriptor = D:P(A;;GA;;;SY)(A;;GA;;;BA)
AlternateSignatureAlgorithm 지정 하 고 불연속 또는 조합 된 PKCS #10 요청 또는 인증서 서명에 대 한 서명 알고리즘 개체 식별자 (OID) 인지 여부를 나타내는 부울 값을 검색 합니다. true | false AlternateSignatureAlgorithm = false

RSA 서명 false 의 경우 서명을 나타내는 Pkcs1 v1.5v2.1 반면 true

침묵 기본적으로이 옵션에는 사용자에 게 서 스마트 카드 PIN와 같은 대화형 사용자 데스크톱 및 요청 정보를 CSP 액세스할을 수 있습니다. 이 키가 TRUE로 설정, CSP 데스크톱과 상호 작용 해서는 안 하 고 사용자에 게 모든 사용자 인터페이스를 표시 차단 됩니다. true | false Silent = true
SMIME 이 매개 변수는 TRUE로 설정 하는 경우 개체 식별자 값 1.2.840.113549.1.9.15 확장이 요청에 추가 됩니다. 개체 식별자 수는 설치된 운영 체제 버전 및 CSP 기능에 따라 달라집니다. 이 기능은 Outlook과 같은 S/MIME(Secure Multipurpose Internet Mail Extensions) 애플리케이션에서 사용할 수 있는 대칭 암호화 알고리즘을 나타냅니다. true | false SMIME = true
UseExistingKeySet 이 매개 변수를 사용 하 여 인증서 요청을 만드는 기존 키 쌍을 사용 해야 함을 지정 합니다. 이 키가 TRUE로 설정 하는 경우 RenewalCert 키 또는 KeyContainer 이름에 대 한 값도 지정 해야 합니다. 기존 키의 속성을 변경할 수 없으므로 Exportable 키를 설정해서는 안 됩니다. 이 경우 키 자료가 인증서 요청을 빌드할 때 생성 됩니다. true | false UseExistingKeySet = true
KeyProtection 사용 하기 전에 프라이빗 키를 보호 하는 방법을 나타내는 값을 지정 합니다.
  • XCN_NCRYPT_UI_NO_PROTCTION_FLAG -- 0
  • XCN_NCRYPT_UI_PROTECT_KEY_FLAG -- 1
  • XCN_NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG -- 2
KeyProtection = NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG
SuppressDefaults 기본 확장 프로그램 및 특성 요청에 포함 되는지 여부를 나타내는 부울 값을 지정 합니다. 기본값은 해당 Oid (개체 식별자)으로 표현 됩니다. true | false SuppressDefaults = true
FriendlyName 새 인증서 이름입니다. Text FriendlyName = Server1
ValidityPeriodUnits ValidityPeriod와 함께 사용할 많은 단위를 지정합니다. 참고: 이 값은 .에 있는 request type=cert경우에만 사용됩니다. 숫자 ValidityPeriodUnits = 3
ValidityPeriod ValidityPeriod는 미국 영어 복수 기간이어야 합니다. 참고: 요청 type=cert인 경우에만 사용됩니다. Years | Months | Weeks | Days | Hours | Minutes | Seconds ValidityPeriod = Years

1등호 왼쪽에 있는 매개 변수(=)

2등호 오른쪽에 있는 매개 변수(=)

[확장]

이 섹션은 선택 사항입니다.

OID 확장 정의 예시
2.5.29.17 2.5.29.17 = {text}
continue continue = UPN=User@Domain.com&
continue continue = EMail=User@Domain.com&
continue continue = DNS=host.domain.com&
continue continue = DirectoryName=CN=Name,DC=Domain,DC=com&
continue continue = URL=<http://host.domain.com/default.html&>
continue continue = IPAddress=10.0.0.1&
continue continue = RegisteredId=1.2.3.4.5&
continue continue = 1.2.3.4.6.1={utf8}String&
continue continue = 1.2.3.4.6.2={octet}AAECAwQFBgc=&
continue continue = 1.2.3.4.6.2={octet}{hex}00 01 02 03 04 05 06 07&
continue continue = 1.2.3.4.6.3={asn}BAgAAQIDBAUGBw==&
continue continue = 1.2.3.4.6.3={hex}04 08 00 01 02 03 04 05 06 07
2.5.29.37 2.5.29.37={text}
continue continue = 1.3.6.1.5.5.7
continue continue = 1.3.6.1.5.5.7.3.1
2.5.29.19 {text}ca=0pathlength=3
위험 Critical=2.5.29.19
KeySpec
  • AT_NONE -- 0
  • AT_SIGNATURE -- 2
  • AT_KEYEXCHANGE -- 1
RequestType
  • PKCS10 -- 1
  • PKCS7 -- 2
  • CMC -- 3
  • Cert -- 4
  • SCEP -- fd00 (64768)
KeyUsage
  • CERT_DIGITAL_SIGNATURE_KEY_USAGE -- 80 (128)
  • CERT_NON_REPUDIATION_KEY_USAGE -- 40 (64)
  • CERT_KEY_ENCIPHERMENT_KEY_USAGE -- 20 (32)
  • CERT_DATA_ENCIPHERMENT_KEY_USAGE -- 10 (16)
  • CERT_KEY_AGREEMENT_KEY_USAGE -- 8
  • CERT_KEY_CERT_SIGN_KEY_USAGE -- 4
  • CERT_OFFLINE_CRL_SIGN_KEY_USAGE -- 2
  • CERT_CRL_SIGN_KEY_USAGE -- 2
  • CERT_ENCIPHER_ONLY_KEY_USAGE -- 1
  • CERT_DECIPHER_ONLY_KEY_USAGE -- 8000 (32768)
KeyUsageProperty
  • NCRYPT_ALLOW_DECRYPT_FLAG -- 1
  • NCRYPT_ALLOW_SIGNING_FLAG -- 2
  • NCRYPT_ALLOW_KEY_AGREEMENT_FLAG -- 4
  • NCRYPT_ALLOW_ALL_USAGES -- ffffff (16777215)
KeyProtection
  • NCRYPT_UI_NO_PROTECTION_FLAG -- 0
  • NCRYPT_UI_PROTECT_KEY_FLAG -- 1
  • NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG -- 2
SubjectNameFlags template
  • CT_FLAG_SUBJECT_REQUIRE_COMMON_NAME -- 40000000 (1073741824)
  • CT_FLAG_SUBJECT_REQUIRE_DIRECTORY_PATH -- 80000000 (2147483648)
  • CT_FLAG_SUBJECT_REQUIRE_DNS_AS_CN -- 10000000 (268435456)
  • CT_FLAG_SUBJECT_REQUIRE_EMAIL -- 20000000 (536870912)
  • CT_FLAG_OLD_CERT_SUPPLIES_SUBJECT_AND_ALT_NAME -- 8
  • CT_FLAG_SUBJECT_ALT_REQUIRE_DIRECTORY_GUID -- 1000000 (16777216)
  • CT_FLAG_SUBJECT_ALT_REQUIRE_DNS -- 8000000 (134217728)
  • CT_FLAG_SUBJECT_ALT_REQUIRE_DOMAIN_DNS -- 400000 (4194304)
  • CT_FLAG_SUBJECT_ALT_REQUIRE_EMAIL -- 4000000 (67108864)
  • CT_FLAG_SUBJECT_ALT_REQUIRE_SPN -- 800000 (8388608)
  • CT_FLAG_SUBJECT_ALT_REQUIRE_UPN -- 2000000 (33554432)
X500NameFlags
  • CERT_NAME_STR_NONE -- 0
  • CERT_OID_NAME_STR -- 2
  • CERT_X500_NAME_STR -- 3
  • CERT_NAME_STR_SEMICOLON_FLAG -- 40000000 (1073741824)
  • CERT_NAME_STR_NO_PLUS_FLAG -- 20000000 (536870912)
  • CERT_NAME_STR_NO_QUOTING_FLAG -- 10000000 (268435456)
  • CERT_NAME_STR_CRLF_FLAG -- 8000000 (134217728)
  • CERT_NAME_STR_COMMA_FLAG -- 4000000 (67108864)
  • CERT_NAME_STR_REVERSE_FLAG -- 2000000 (33554432)
  • CERT_NAME_STR_FORWARD_FLAG -- 1000000 (16777216)
  • CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG -- 10000 (65536)
  • CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG -- 20000 (131072)
  • CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG -- 40000 (262144)
  • CERT_NAME_STR_FORCE_UTF8_DIR_STR_FLAG -- 80000 (524288)
  • CERT_NAME_STR_DISABLE_UTF8_DIR_STR_FLAG -- 100000 (1048576)
  • CERT_NAME_STR_ENABLE_PUNYCODE_FLAG -- 200000 (2097152)

참고 항목

SubjectNameFlags를 사용하면 INF 파일에서 현재 사용자 또는 현재 컴퓨터 속성(DNS 이름, UPN 등)에 따라 certreq에서 자동으로 채워야 하는 SubjectSubjectAltName 확장 필드를 지정할 수 있습니다. 리터럴 템플릿을 사용하면 템플릿 이름 플래그가 대신 사용됩니다. 따라서 단일 INF 파일을 상황에 맞는 주체 정보를 사용 하 여 요청을 생성 하는 여러 컨텍스트에서 사용할 수 있습니다.

X500NameFlags값이 ASN.1로 인코딩된 고유 이름으로 변환될 때 Subject INF keys API에 직접 CertStrToName 전달될 플래그를 지정합니다.

예시

메모장 정책 파일(.inf)을 만들고 requestconfig.inf저장하려면 다음을 수행합니다.

[NewRequest]
Subject = CN=<FQDN of computer you are creating the certificate>
Exportable = TRUE
KeyLength = 2048
KeySpec = 1
KeyUsage = 0xf0
MachineKeySet = TRUE
[RequestAttributes]
CertificateTemplate=WebServer
[Extensions]
OID = 1.3.6.1.5.5.7.3.1
OID = 1.3.6.1.5.5.7.3.2

인증서를 요청하는 컴퓨터에서 다음을 수행합니다.

certreq –new requestconfig.inf certrequest.req

OID 및 기타 데이터를 해석하기 어려운 [Strings] 섹션 구문을 사용하려면 Oid 쉼표로 구분 된 목록을 사용 하 여 EKU 확장을 위한 새로운 {text} 구문 예제:

[Version]
Signature=$Windows NT$

[Strings]
szOID_ENHANCED_KEY_USAGE = 2.5.29.37
szOID_PKIX_KP_SERVER_AUTH = 1.3.6.1.5.5.7.3.1
szOID_PKIX_KP_CLIENT_AUTH = 1.3.6.1.5.5.7.3.2

[NewRequest]
Subject = CN=TestSelfSignedCert
Requesttype = Cert

[Extensions]
%szOID_ENHANCED_KEY_USAGE%={text}%szOID_PKIX_KP_SERVER_AUTH%,
_continue_ = %szOID_PKIX_KP_CLIENT_AUTH%

SAN(주체 대체 이름)을 지정하려면 INF의 [확장] 섹션에 추가합니다. 예시:

[Version]
Signature=$Windows NT$
 
[Strings]
szOID_ENHANCED_KEY_USAGE = 2.5.29.37
szOID_PKIX_KP_SERVER_AUTH = 1.3.6.1.5.5.7.3.1
szOID_PKIX_KP_CLIENT_AUTH = 1.3.6.1.5.5.7.3.2

[NewRequest]
Subject = CN=TestSelfSignedCert
Requesttype = Cert

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=example.com"
_continue_ = "DNS=www.example.com"
_continue_ = "IP Address=192.168.1.1"

이 예제에서는 2.5.29.17 SAN을 정의하는 OID입니다. 여러 SAN을 _continue_ 지정하기 위해 확장 OID를 사용하여 각 SAN 확장을 분리하고 지정할 수 있습니다.

certreq -accept

매개 변수는 –accept 이전에 생성된 프라이빗 키를 발급된 인증서와 연결하고 인증서가 요청된 시스템에서 보류 중인 인증서 요청을 제거합니다(일치하는 요청이 있는 경우).

인증서를 수동으로 수락하려면 다음을 수행합니다.

certreq -accept certnew.cer

Warning

-accept 매개 변수 -user–machine 옵션을 사용하면 설치 인증서를 사용자 또는 컴퓨터 컨텍스트에 설치해야 하는지 여부를 나타냅니다. 설치 중인 공개 키와 일치하는 미해결 요청이 있는 경우 이러한 옵션은 필요하지 않습니다. 처리 중인 요청이 없을 경우 다음 중 하나 지정 해야 합니다.

certreq -policy

policy.inf 파일은 정규화된 하위가 정의된 경우 CA 인증에 적용되는 제약 조건을 정의하는 구성 파일입니다.

인증서 간 요청을 빌드하려면 다음을 수행합니다.

certreq -policy certsrv.req policy.inf newcertsrv.req

다른 매개 변수 없이 사용하면 certreq -policy 요청된 파일(.req, .cmc, .txt, .der, .cer 또는 .crt)을 선택할 수 있는 대화 상자 창이 열립니다. 요청된 파일을 선택하고 열기를 클릭하면 policy.inf 파일을 선택할 수 있는 다른 대화 상자 창이 열립니다.

예제

CAPolicy.inf 구문에서 policy.inf 파일의 예를 찾습니다.

certreq -sign

새 인증서 요청을 만들려면 서명하고 제출합니다.

certreq -new policyfile.inf myrequest.req
certreq -sign myrequest.req myrequest.req
certreq -submit myrequest_sign.req myrequest_cert.cer

설명

  • 다른 매개 변수 없이 사용하면 certreq -sign 요청된 파일(req, cmc, txt, der, cer 또는 crt)을 선택할 수 있도록 대화 상자 창이 열립니다.

  • 정규화된 하위 요청에 서명하려면 Enterprise 관리istrator 자격 증명이 필요할 수 있습니다. 이것이 정규 종속에 대 한 서명 인증서를 발급 하는 것이 가장 좋습니다.

  • 정규화된 하위 요청에 서명하는 데 사용되는 인증서는 정규화된 하위 템플릿을 사용합니다. 엔터프라이즈 관리주체는 요청에 서명하거나 인증서에 서명하는 개인에게 사용자 권한을 부여해야 합니다.

  • 추가 담당자가 CMC 요청에 서명해야 할 수 있습니다. 이는 정규화된 하위와 연결된 보증 수준에 따라 달라집니다.

  • 설치하려는 정규화된 하위 CA의 부모 CA가 오프라인인 경우 오프라인 부모로부터 정규화된 하위 CA에 대한 CA 인증서를 가져와야 합니다. 부모 CA가 온라인 상태이면 인증서 서비스 설치 마법사 중에 정규화된 하위 CA에 대한 CA 인증서를 지정합니다.

certreq -enroll

이 주석을 사용하여 인증서를 등록하거나 갱신할 수 있습니다.

예제

인증서를 등록하려면 WebServer 템플릿을 사용하고 U/I를 사용하여 정책 서버를 선택합니다.

certreq -enroll –machine –policyserver * WebServer

일련 번호를 사용하여 인증서를 갱신하려면 다음을 수행합니다.

certreq –enroll -machine –cert 61 2d 3c fe 00 00 00 00 00 05 renew

유효한 인증서만 갱신할 수 있습니다. 만료된 인증서는 갱신할 수 없으며 새 인증서로 바꿔야 합니다.

옵션

옵션 설명
-모든 Force ICertRequest::Submit 인코딩 형식을 확인합니다.
-Attrib <attributestring> 콜론으로 구분된 이름 문자열 쌍을 지정합니다.

이름 문자열 쌍을 구분합니다 \n (예: Name1:value1\nName2:value2).

-이진 형식 대신 base64 인코딩된 이진 파일을 출력합니다.
-policyserver <policyserver> Ldap: <path>
인증서 등록 정책 웹 서비스를 실행하는 컴퓨터의 URI 또는 고유 ID를 삽입합니다.

요청 파일을 이동 하 여 사용 하려는 지정 하려면 삼아 빼기 (-) 기호에 대 한 <policyserver>합니다.

-구성 <ConfigString> 구성 문자열에 지정된 CA( CAHostName\CAName)를 사용하여 작업을 처리합니다. https:\\ 연결의 경우 등록 서버 URI를 지정합니다. 로컬 컴퓨터에 대 한 CA를 저장, 빼기를 사용 하 여 기호 (-).
-익명 인증서 등록 웹 서비스에 익명 자격 증명을 사용합니다.
-Kerberos 인증서 등록 웹 서비스에 Kerberos(do기본) 자격 증명을 사용합니다.
-clientcertificate <ClientCertId> 인증서 지문, CN, EKU, 템플릿, 전자 메일, UPN 또는 새 name=value 구문으로 바꿀 <ClientCertId> 수 있습니다.
-사용자 <username> 인증서 등록 웹 서비스와 함께 사용됩니다. SAM 이름으로 대체 <username> 하거나 기본\사용자 값을 사용할 수 있습니다. 이 옵션은 옵션과 함께 사용하기 위한 것입니다 -p .
-p <password> 인증서 등록 웹 서비스와 함께 사용됩니다. 대체 <password> 실제 사용자의 암호를 사용 합니다. 이 옵션은 옵션과 함께 사용하기 위한 것입니다 -username .
-사용자 -user 새 인증서 요청에 대한 컨텍스트를 구성하거나 인증서 수락에 대한 컨텍스트를 지정합니다. INF 또는 서식 파일에 지정 되지 않은 경우 기본 컨텍스트에입니다.
-컴퓨터 새 인증서 요청을 구성 하거나 컨텍스트를 지정 된 컴퓨터 컨텍스트에 대 한 인증서를 허용 합니다. 새 요청에 대 한 템플릿 컨텍스트와 MachineKeyset INF 키와 일치 이어야 합니다. 이 옵션을 지정하지 않고 템플릿이 컨텍스트를 설정하지 않은 경우 기본값은 사용자 컨텍스트입니다.
-crl 지정된 base64로 인코딩된 PKCS #7 파일 또는 지정한 base64로 인코딩된 certchainfileout 파일에 requestfileout대한 출력에 CRL(인증서 해지 목록)을 포함합니다.
-rpc Active Directory 인증서 서비스 (AD CS) 분산 COM. 대신 원격 프로시저 호출 (RPC) 서버 연결을 사용 하도록 지시 합니다.
-adminforcemachine 키 서비스 또는 가장을 사용 하 여 로컬 시스템 컨텍스트에서 요청을 제출 합니다. 이 옵션을 호출 하는 사용자의 로컬 관리자 구성원 되도록 요구 합니다.
-renewonbehalfof 서명 인증서에 식별 된 주체를 대신 하 여 갱신을 제출 합니다. 이렇게 하면 ICertRequest::Submit 메서드를 호출 할 때 CR_IN_ROBO 설정됩니다.
f- 기존 파일을 덮어쓰도록 강제 합니다. 캐싱 템플릿 및 정책에도 무시합니다.
-Q 자동 모드를 사용 합니다. 모든 대화형 프롬프트를 표시 합니다.
-유니코드 표준 출력이 리디렉션되거나 다른 명령으로 파이프될 때 유니코드 출력을 씁니다. 이는 Windows PowerShell 스크립트에서 호출할 때 도움이 됩니다.
-unicodetext 파일에 데이터 blob 인코딩된 base64 텍스트를 작성 하는 경우 유니코드 출력을 보냅니다.

형식

형식 설명
requestfilein Base64 인코딩 또는 이진 입력된 파일 이름: PKCS #10 인증서 요청, CMS 인증서 요청, PKCS #7 인증서 갱신 요청, 상호 인증에 X.509 인증서 또는 KeyGen 태그 형식 인증서 요청 합니다.
requestfileout Base64로 인코딩된 출력 파일 이름입니다.
certfileout Base64 인코딩된 X-509 파일 이름입니다.
PKCS10fileout 매개 변수에 certreq -policy 만 사용합니다. Base64 인코딩된 PKCS10 출력 파일 이름입니다.
certchainfileout Base 64 인코딩 PKCS #7 파일 이름입니다.
fullresponsefileout Base64 인코딩된 전체 응답 파일 이름입니다.
policyfilein 매개 변수에 certreq -policy 만 사용합니다. 요청을 한 정하는 데 사용 되는 확장의 텍스트 표현을 포함 하는 INF 파일입니다.

추가 리소스

다음 문서 certreq 사용의 예를 들어: