다음을 통해 공유


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]

매개 변수

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

예제

certreq -submit

기본 인증서 요청을 제출하려면:

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

설명

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

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

certreq -retrieve

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

certreq -retrieve 20 MyCertificate.cer

설명

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

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

certreq -new

새 요청을 만들려면:

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

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

[newrequest]

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

Key1 설명 Value2 예시
주제 여러 앱이 인증서의 주체 정보를 사용합니다. 이 키의 값을 지정하는 것이 좋습니다. 여기에 주체가 설정되지 않은 경우, 주체 대체 이름 인증서 확장의 일부로 주체 이름을 포함하는 것이 좋습니다. 상대 고유 이름 문자열 값 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 요청을 발급할 수 없는 이전 날짜 또는 날짜와 시간을 지정합니다. NotBeforeValidityPeriodValidityPeriodUnits와 함께 사용할 수 있습니다. 날짜 또는 날짜와 시간 NotBefore = 7/24/2012 10:31 AM

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

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

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

PrivateKeyArchive PrivateKeyArchive 설정은 CMS를 통한 인증서 관리 메시지(CMC) 요청 형식만 키 보관용 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 전체'와 같은 특정 알고리즘 기능에 따라 특정 공급자를 선택할 때 사용됩니다. 사용 중인 CSP의 공급자 유형을 모르는 경우 명령줄 프롬프트에서 certutil –csplist를 실행합니다. 이 명령은 로컬 시스템에서 사용할 수 있는 모든 CSP 공급자 유형을 표시합니다. ProviderType = 1
RenewalCert 인증서 요청 생성 된 경우 시스템에 존재 하는 인증서를 갱신 해야 하는 경우에이 키에 대 한 값으로 인증서 해시를 지정 해야 합니다. 인증서 요청을 만들 되는 컴퓨터에서 사용할 수 있는 모든 인증서의 인증서 해시입니다. 인증서 해시를 모르는 경우에는 인증서 MMC 스냅인을 사용하여 갱신해야 하는 인증서를 확인합니다. 인증서 속성을 열고 인증서의 Thumbprint 특성을 확인합니다. 인증서 갱신에는 PKCS#7 또는 CMC 요청 형식이 필요합니다. RenewalCert = 4EDF274BD2919C6E9EC6A522F0F3B153E9B1582D
RequesterName 다른 사용자 요청을 대신하여 요청을 등록합니다. 등록 에이전트 인증서를 사용하여 요청에 서명해야 합니다. 그렇게 하지 않으면 CA가 요청을 거부합니다. -cert 옵션을 사용하여 등록 에이전트 인증서를 지정합니다. RequestTypePKCS#7 또는 CMC로 설정된 경우 인증서 요청에 대해 요청자 이름을 지정할 수 있습니다. RequestTypePKCS#10로 설정된 경우 이 키가 무시됩니다. Requestername는 요청의 일부로만 설정할 수 있습니다. 보류 중인 요청에서는 Requestername를 조작할 수 없습니다. Domain\User Requestername = Contoso\BSmith
RequestType 생성 하 고 인증서 요청을 전송 하는 데 사용 되는 표준에 따라 결정 됩니다.
  • PKCS10 -- 1
  • PKCS7 -- 2
  • CMC -- 3
  • Cert -- 4
  • SCEP -- fd00 (64768)
팁: 이 옵션은 자체 서명 또는 자체 발급 인증서를 나타냅니다. 이것은 요청이 아니라 새 인증서를 생성한 다음 인증서를 설치합니다. 자체 서명이 기본값입니다. -cert 옵션을 사용하여 자체 서명되지 않은 자체 발급 인증서를 만들어 서명 인증서를 지정합니다.
RequestType = CMC
SecurityDescriptor 보안 개체와 연결된 보안 정보가 포함됩니다. 대부분의 보안 개체에 대해, 보안 설명자 정의 언어에 기반하는 object.Strings를 만드는 함수 호출에서 개체의 보안 설명자를 지정할 수 있습니다.

팁: 이것은 컴퓨터 컨텍스트 비 스마트 카드 키에만 해당합니다.

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

RSA 서명의 경우 falsePkcs1 v1.5를 나타내며, truev2.1를 나타냅니다.

침묵 기본적으로이 옵션에는 사용자에 게 서 스마트 카드 PIN와 같은 대화형 사용자 데스크톱 및 요청 정보를 CSP 액세스할을 수 있습니다. 이 키가 TRUE로 설정, CSP 데스크톱과 상호 작용 해서는 안 하 고 사용자에 게 모든 사용자 인터페이스를 표시 차단 됩니다. true | false Silent = true
SMIME 이 매개 변수는 TRUE로 설정 하는 경우 개체 식별자 값 1.2.840.113549.1.9.15 확장이 요청에 추가 됩니다. 개체 식별자의 수는 설치된 운영 체제 버전과 CSP 기능에 따라 달라지며, CSP 기능은 Outlook과 같은 S/MIME(Secure Multipurpose Internet Mail Extensions) 애플리케이션에서 사용할 수 있는 대칭 암호화 알고리즘을 나타냅니다. true | false SMIME = true
UseExistingKeySet 이 매개 변수를 사용 하 여 인증서 요청을 만드는 기존 키 쌍을 사용 해야 함을 지정 합니다. 이 키가 TRUE로 설정 하는 경우 RenewalCert 키 또는 KeyContainer 이름에 대 한 값도 지정 해야 합니다. 기존 키의 속성을 변경할 수 없기 때문에 내보낼 수 있는 키를 설정하면 안 됩니다. 이 경우 키 자료가 인증서 요청을 빌드할 때 생성 됩니다. 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는 미국 영어의 복수 기간이어야 합니다. 참고: 이것은 요청 유형=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 템플릿
  • 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 파일을 상황에 맞는 주체 정보를 사용 하 여 요청을 생성 하는 여러 컨텍스트에서 사용할 수 있습니다.

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

예시

메모장에서 정책 파일(.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 및 기타 데이터 해석이 어려운 [문자열] 섹션 구문을 사용하려면. 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)을 선택할 수 있는 대화 상자 창이 열립니다.

  • 정규 종속 요청을 서명하려면 엔터프라이즈 관리자 자격 증명이 필요할 수 있습니다. 이것이 정규 종속에 대 한 서명 인증서를 발급 하는 것이 가장 좋습니다.

  • 정규 종속 요청에 서명할 때 사용되는 인증서는 정규 종속 템플릿을 사용합니다. 엔터프라이즈 관리자가 요청에 서명하거나 인증서에 서명하는 개인에게 사용자 권한을 부여해야 합니다.

  • 사용자 다음에 추가 담당자가 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>
인증서 등록 정책 웹 서비스를 실행하는 컴퓨터의 고유 ID 또는 URI를 삽입합니다.

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

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