Bagikan melalui


certreq

Perintah certreq dapat digunakan untuk meminta sertifikat dari otoritas sertifikasi (CA), untuk mengambil respons terhadap permintaan sebelumnya dari CA, untuk membuat permintaan baru dari file .inf, untuk menerima dan menginstal respons terhadap permintaan, untuk membangun sertifikasi silang atau permintaan subordinasi yang memenuhi syarat dari sertifikat atau permintaan CA yang ada, dan untuk menandatangani sertifikasi silang atau permintaan subordinasi yang memenuhi syarat.

Penting

Versi perintah certreq yang lebih lama mungkin tidak menyediakan semua opsi yang dijelaskan di sini. Untuk melihat opsi yang didukung berdasarkan versi certreq tertentu, jalankan opsi bantuan baris perintah, certreq -v -?.

Perintah certreq tidak mendukung pembuatan permintaan sertifikat baru berdasarkan templat Pengesahan Kunci saat berada di lingkungan CEP/CES.

Peringatan

Konten untuk topik ini didasarkan pada pengaturan default untuk Windows Server; misalnya, mengatur panjang kunci ke 2048, memilih Penyedia Penyimpanan Kunci Perangkat Lunak Microsoft sebagai CSP, dan menggunakan Algoritma Hash Aman 1 (SHA1). Evaluasi pilihan ini terhadap persyaratan kebijakan keamanan perusahaan Anda.

Sintaks

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]

Parameter

Parameter Deskripsi
-tunduk Mengirimkan permintaan ke otoritas sertifikat.
-Mengambil <requestid> Mengambil respons terhadap permintaan sebelumnya dari otoritas sertifikat.
-baru Membuat permintaan baru dari file .inf.
-terima Menerima dan menginstal respons terhadap permintaan sertifikat.
-kebijakan Mengatur kebijakan untuk permintaan.
-tanda Menandatangani permintaan subordinasi lintas sertifikasi atau subordinasi yang memenuhi syarat.
-Mendaftar Mendaftar atau memperpanjang sertifikat.
-? Menampilkan daftar sintaks, opsi, dan deskripsi certreq.
<parameter> -? Menampilkan bantuan untuk parameter yang ditentukan.
-v -? Menampilkan daftar verbose sintaks, opsi, dan deskripsi certreq.

Contoh

certreq -submit

Untuk mengirimkan permintaan sertifikat dasar:

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

Keterangan

  • Ini adalah parameter certreq.exe default. Jika tidak ada opsi yang ditentukan pada prompt baris perintah, certreq.exe mencoba mengirimkan permintaan sertifikat ke otoritas sertifikat. Anda harus menentukan file permintaan sertifikat saat menggunakan opsi –submit . Jika parameter ini dihilangkan, jendela Buka File umum muncul, memungkinkan Anda memilih file permintaan sertifikat yang sesuai.

  • Untuk meminta sertifikat dengan menentukan atribut SAN, lihat bagian Cara menggunakan utilitas certreq.exe untuk membuat dan mengirimkan permintaan sertifikat dari artikel Pangkalan Pengetahuan Microsoft 931351 Cara menambahkan Nama Alternatif Subjek ke sertifikat LDAP yang aman.

certreq -retrieve

Untuk mengambil ID sertifikat 20 dan membuat file sertifikat (.cer), bernama MyCertificate:

certreq -retrieve 20 MyCertificate.cer

Keterangan

  • Gunakan certreq -retrieve requestid untuk mengambil sertifikat setelah otoritas sertifikat mengeluarkannya. PKC requestid dapat berupa desimal atau hex dengan awalan 0x dan dapat berupa nomor seri sertifikat tanpa awalan 0x. Anda juga dapat menggunakannya untuk mengambil sertifikat apa pun yang pernah dikeluarkan oleh otoritas sertifikat, termasuk sertifikat yang dicabut atau kedaluwarsa, tanpa mempertimbangkan apakah permintaan sertifikat pernah dalam status tertunda.

  • Jika Anda mengirimkan permintaan ke otoritas sertifikat, modul kebijakan otoritas sertifikat mungkin meninggalkan permintaan dalam status tertunda dan mengembalikan requestid ke pemanggil certreq untuk ditampilkan. Akhirnya, administrator otoritas sertifikat mengeluarkan sertifikat atau menolak permintaan.

certreq -baru

Untuk membuat permintaan baru:

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

Berikut ini adalah beberapa bagian yang mungkin ditambahkan ke file INF:

[newrequest]

Area file INF ini wajib untuk setiap templat permintaan sertifikat baru, dan harus menyertakan setidaknya satu parameter dengan nilai.

Kunci1 Deskripsi Nilai2 Contoh
Subjek Beberapa aplikasi mengandalkan informasi subjek dalam sertifikat. Sebaiknya tentukan nilai untuk kunci ini. Jika subjek tidak diatur di sini, kami sarankan Anda menyertakan nama subjek sebagai bagian dari ekstensi sertifikat nama alternatif subjek. Nilai string Nama Khusus Relatif Subjek = CN=computer1.contoso.com Subject=CN=John Smith,CN=Users,DC=Contoso,DC=com
Ekspor Jika diatur ke TRUE, kunci privat dapat diekspor dengan sertifikat. Untuk memastikan tingkat keamanan yang tinggi, kunci privat tidak boleh dapat diekspor; namun, dalam beberapa kasus, mungkin diperlukan jika beberapa komputer atau pengguna harus berbagi kunci privat yang sama. true | false Exportable = TRUE. Kunci CNG dapat membedakan antara ini dan teks biasa yang dapat diekspor. Kunci CAPI1 tidak bisa.
ExportableEncrypted Menentukan apakah kunci privat harus diatur agar dapat diekspor. true | false ExportableEncrypted = true

Tips: Tidak semua ukuran dan algoritma kunci publik berfungsi dengan semua algoritma hash. CSP yang ditentukan juga harus mendukung algoritma hash yang ditentukan. Untuk melihat daftar algoritma hash yang didukung, Anda dapat menjalankan perintah: certutil -oid 1 | findstr pwszCNGAlgid | findstr /v CryptOIDInfo

HashAlgorithm Algoritma Hash yang akan digunakan untuk permintaan ini. Sha256, sha384, sha512, sha1, md5, md4, md2 HashAlgorithm = sha1. Untuk melihat daftar penggunaan algoritma hash yang didukung: certutil -oid 1 | findstr pwszCNGAlgid | findstr /v CryptOIDInfo
KeyAlgorithm Algoritma yang digunakan oleh penyedia layanan untuk menghasilkan pasangan kunci publik dan privat. RSA, DH, DSA, ECDH_P256, ECDH_P521, ECDSA_P256, ECDSA_P384, ECDSA_P521 KeyAlgorithm = RSA
KeyContainer Kami tidak menyarankan pengaturan parameter ini untuk permintaan baru tempat materi kunci baru dibuat. Kontainer kunci secara otomatis dihasilkan dan dikelola oleh sistem.

Untuk permintaan di mana materi kunci yang ada harus digunakan, nilai ini dapat diatur ke nama kontainer kunci dari kunci yang ada. certutil –key Gunakan perintah untuk menampilkan daftar kontainer kunci yang tersedia untuk konteks komputer. certutil –key –user Gunakan perintah untuk konteks pengguna saat ini.

Nilai string acak

Tips: Gunakan tanda kutip ganda di sekitar nilai kunci INF apa pun yang memiliki karakter kosong atau khusus untuk menghindari potensi masalah penguraian INF.

KeyContainer = {C347BD28-7F69-4090-AA16-BC58CF4D749C}
KeyLength Menentukan panjang kunci publik dan privat. Panjang kunci berdampak pada tingkat keamanan sertifikat. Panjang kunci yang lebih besar biasanya memberikan tingkat keamanan yang lebih tinggi; namun, beberapa aplikasi mungkin memiliki batasan mengenai panjang kunci. Panjang kunci valid apa pun yang didukung oleh penyedia layanan kriptografi. KeyLength = 2048
KeySpec Menentukan apakah kunci dapat digunakan untuk tanda tangan, untuk Exchange (enkripsi), atau untuk keduanya. AT_NONE, AT_SIGNATURE, AT_KEYEXCHANGE KeySpec = AT_KEYEXCHANGE
KeyUsage Menentukan untuk apa kunci sertifikat harus digunakan.
  • 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

Tips: Beberapa nilai menggunakan pemisah simbol pipa (|). Pastikan Anda menggunakan tanda kutip ganda saat menggunakan beberapa nilai untuk menghindari masalah penguraian INF. Nilai yang ditampilkan adalah nilai heksadesimal (desimal) untuk setiap definisi bit. Sintaks yang lebih lama juga dapat digunakan: nilai heksadesimal tunggal dengan beberapa bit diatur, bukan representasi simbolis. Contohnya,KeyUsage = 0xa0.

KeyUsageProperty Mengambil nilai yang mengidentifikasi tujuan spesifik untuk kunci privat yang dapat digunakan.
  • 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 Kunci ini penting ketika Anda perlu membuat sertifikat yang dimiliki oleh mesin dan bukan pengguna. Materi kunci yang dihasilkan dipertahankan dalam konteks keamanan prinsip keamanan (pengguna atau akun komputer) yang telah membuat permintaan. Saat administrator membuat permintaan sertifikat atas nama komputer, materi kunci harus dibuat dalam konteks keamanan komputer dan bukan konteks keamanan administrator. Jika tidak, komputer tidak dapat mengakses kunci privatnya karena akan berada dalam konteks keamanan administrator. true | false. Defaultnya adalah false. MachineKeySet = true
Tidak sebelum Menentukan tanggal atau tanggal dan waktu sebelum permintaan tidak dapat dikeluarkan. NotBefore dapat digunakan dengan ValidityPeriod dan ValidityPeriodUnits. Tanggal atau tanggal dan waktu NotBefore = 7/24/2012 10:31 AM

Tips: NotBefore dan NotAfter hanya untuk RequestType=cert . Penguraian tanggal mencoba sensitif terhadap lokal. Menggunakan nama bulan akan membedakan dan harus bekerja di setiap lokal.

NotAfter Menentukan tanggal atau tanggal dan waktu setelah itu permintaan tidak dapat dikeluarkan. NotAfter tidak dapat digunakan dengan ValidityPeriod atau ValidityPeriodUnits. Tanggal atau tanggal dan waktu NotAfter = 9/23/2014 10:31 AM

Tips: NotBefore dan NotAfter hanya untuk RequestType=cert . Penguraian tanggal mencoba sensitif terhadap lokal. Menggunakan nama bulan akan membedakan dan harus bekerja di setiap lokal.

PrivateKeyArchive Pengaturan PrivateKeyArchive hanya berfungsi jika RequestType yang sesuai diatur ke CMC karena hanya format permintaan Pesan Manajemen Sertifikat melalui CMS (CMC) yang memungkinkan untuk mentransfer kunci privat pemohon dengan aman ke CA untuk pengarsipan kunci. true | false PrivateKeyArchive = true
EncryptionAlgorithm Algoritma enkripsi yang akan digunakan. Opsi yang mungkin bervariasi, tergantung pada versi sistem operasi dan set penyedia kriptografi yang diinstal. Untuk melihat daftar algoritma yang tersedia, jalankan perintah: certutil -oid 2 | findstr pwszCNGAlgid. CSP yang ditentukan yang digunakan juga harus mendukung algoritma dan panjang enkripsi simetris yang ditentukan. EncryptionAlgorithm = 3des
EncryptionLength Panjang algoritma enkripsi yang akan digunakan. Panjang apa pun yang diizinkan oleh EncryptionAlgorithm yang ditentukan. EncryptionLength = 128
ProviderName Nama penyedia adalah nama tampilan CSP. Jika Anda tidak mengetahui nama penyedia CSP yang Anda gunakan, jalankan certutil –csplist dari baris perintah. Perintah menampilkan nama semua CSP yang tersedia di sistem lokal ProviderName = Microsoft RSA SChannel Cryptographic Provider
ProviderType Jenis penyedia digunakan untuk memilih penyedia tertentu berdasarkan kemampuan algoritma tertentu seperti RSA Full. Jika Anda tidak mengetahui jenis penyedia CSP yang Anda gunakan, jalankan certutil –csplist dari prompt baris perintah. Perintah menampilkan jenis penyedia semua CSP yang tersedia pada sistem lokal. ProviderType = 1
RenewalCert Jika Anda perlu memperbarui sertifikat yang ada pada sistem tempat permintaan sertifikat dibuat, Anda harus menentukan hash sertifikatnya sebagai nilai untuk kunci ini. Hash sertifikat dari sertifikat apa pun yang tersedia di komputer tempat permintaan sertifikat dibuat. Jika Anda tidak mengetahui hash sertifikat, gunakan Sertifikat MMC Snap-In dan lihat sertifikat yang harus diperbarui. Buka properti sertifikat dan lihat Thumbprint atribut sertifikat. Perpanjangan PKCS#7 sertifikat memerlukan format permintaan atau CMC . RenewalCert = 4EDF274BD2919C6E9EC6A522F0F3B153E9B1582D
RequesterName Membuat permintaan untuk mendaftar atas nama permintaan pengguna lain. Permintaan juga harus ditandatangani dengan sertifikat Agen Pendaftaran, atau CA menolak permintaan. -cert Gunakan opsi untuk menentukan sertifikat agen pendaftaran. Nama pemohon dapat ditentukan untuk permintaan sertifikat jika RequestType diatur ke PKCS#7 atau CMC. RequestType Jika diatur ke PKCS#10, kunci ini diabaikan. hanya Requestername dapat diatur sebagai bagian dari permintaan. Anda tidak dapat memanipulasi Requestername dalam permintaan yang tertunda. Domain\User Requestername = Contoso\BSmith
RequestType Menentukan standar yang digunakan untuk menghasilkan dan mengirim permintaan sertifikat.
  • PKCS10 -- 1
  • PKCS7 -- 2
  • CMC -- 3
  • Cert -- 4
  • SCEP -- fd00 (64768)
Tips: Opsi ini menunjukkan sertifikat yang ditandatangani sendiri atau diterbitkan sendiri. Ini tidak menghasilkan permintaan, melainkan sertifikat baru dan kemudian menginstal sertifikat. Ditandatangani sendiri adalah default. Tentukan sertifikasi penandatanganan dengan menggunakan opsi –cert untuk membuat sertifikat yang diterbitkan sendiri yang tidak ditandatangani sendiri.
RequestType = CMC
SecurityDescriptor Berisi informasi keamanan yang terkait dengan objek yang dapat diamankan. Untuk sebagian besar objek yang dapat diamankan, Anda dapat menentukan deskriptor keamanan objek dalam panggilan fungsi yang membuat objek. String berdasarkan bahasa definisi deskriptor keamanan.

Tips: Ini hanya relevan untuk kunci kartu non-smart konteks mesin.

SecurityDescriptor = D:P(A;;GA;;;SY)(A;;GA;;;BA)
AlternateSignatureAlgorithm Menentukan dan mengambil nilai Boolean yang menunjukkan apakah pengidentifikasi objek algoritma tanda tangan (OID) untuk permintaan PKCS#10 atau tanda tangan sertifikat diskrit atau digabungkan. true | false AlternateSignatureAlgorithm = false

Untuk tanda tangan RSA, false menunjukkan Pkcs1 v1.5, sementara true menunjukkan v2.1 tanda tangan.

Diam Secara default, opsi ini memungkinkan akses CSP ke desktop pengguna interaktif dan meminta informasi seperti PIN kartu pintar dari pengguna. Jika kunci ini diatur ke TRUE, CSP tidak boleh berinteraksi dengan desktop dan akan diblokir untuk menampilkan antarmuka pengguna apa pun kepada pengguna. true | false Silent = true
SMIME Jika parameter ini diatur ke TRUE, ekstensi dengan nilai pengidentifikasi objek 1.2.840.113549.1.9.15 ditambahkan ke permintaan. Jumlah pengidentifikasi objek tergantung pada versi sistem operasi yang diinstal dan kemampuan CSP, yang mengacu pada algoritma enkripsi simetris yang dapat digunakan oleh aplikasi Secure Multipurpose Internet Mail Extensions (S/MIME) seperti Outlook. true | false SMIME = true
UseExistingKeySet Parameter ini digunakan untuk menentukan bahwa pasangan kunci yang ada harus digunakan dalam membangun permintaan sertifikat. Jika kunci ini diatur ke TRUE, Anda juga harus menentukan nilai untuk kunci RenewalCert atau nama KeyContainer. Anda tidak boleh mengatur kunci yang dapat diekspor karena Anda tidak dapat mengubah properti kunci yang ada. Dalam hal ini, tidak ada materi kunci yang dihasilkan ketika permintaan sertifikat dibuat. true | false UseExistingKeySet = true
KeyProtection Menentukan nilai yang menunjukkan bagaimana kunci privat dilindungi sebelum digunakan.
  • 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 Menentukan nilai Boolean yang menunjukkan apakah ekstensi dan atribut default disertakan dalam permintaan. Default diwakili oleh pengidentifikasi objek (OID) mereka. true | false SuppressDefaults = true
FriendlyName Nama yang mudah diingat untuk sertifikat baru. Teks FriendlyName = Server1
ValidityPeriodUnits Menentukan banyak unit yang akan digunakan dengan ValidityPeriod. Catatan: Ini hanya digunakan ketika request type=cert. Numerik ValidityPeriodUnits = 3
ValidityPeriod ValidityPeriod harus merupakan periode waktu jamak bahasa Inggris AS. Catatan: Ini hanya digunakan saat permintaan type=cert. Years | Months | Weeks | Days | Hours | Minutes | Seconds ValidityPeriod = Years

1Parameter di sebelah kiri tanda sama dengan (=)

2Parameter di sebelah kanan tanda sama dengan (=)

[Ekstensi]

Bagian ini bersifat opsional.

OID Ekstensi Definisi Contoh
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
Kritis 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 templat
  • 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)

Catatan

SubjectNameFlagsmemungkinkan file INF untuk menentukan bidang ekstensi Subject dan SubjectAltName mana yang harus diisi secara otomatis oleh certreq berdasarkan properti pengguna atau mesin saat ini: Nama DNS, UPN, dan sebagainya. Menggunakan templat literal berarti bendera nama templat digunakan sebagai gantinya. Ini memungkinkan satu file INF digunakan dalam beberapa konteks untuk menghasilkan permintaan dengan informasi subjek khusus konteks.

X500NameFlagsmenentukan bendera yang akan diteruskan langsung ke CertStrToName API saat Subject INF keys nilai dikonversi ke Nama Khusus yang dikodekan ASN.1.

Contoh

Untuk membuat file kebijakan (.inf) di Notepad dan menyimpannya sebagai 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

Di komputer tempat Anda meminta sertifikat:

certreq –new requestconfig.inf certrequest.req

Untuk menggunakan sintaks bagian [String] untuk OID dan sulit untuk menginterpretasikan data lainnya. Contoh sintaks {text} baru untuk ekstensi EKU, yang menggunakan daftar OID yang dipisahkan koma:

[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%

Untuk menentukan Nama Alternatif Subjek (SAN), tambahkan di bagian [Ekstensi] inf Anda. Contohnya:

[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"

Dalam contoh ini, 2.5.29.17 adalah OID yang menentukan SAN. Untuk menentukan beberapa WAN, _continue_ ekstensi OID digunakan, yang memungkinkan Anda memisahkan dan menentukan setiap ekstensi SAN.

certreq -accept

Parameter –accept menautkan kunci privat yang dibuat sebelumnya dengan sertifikat yang dikeluarkan dan menghapus permintaan sertifikat yang tertunda dari sistem tempat sertifikat diminta (jika ada permintaan yang cocok).

Untuk menerima sertifikat secara manual:

certreq -accept certnew.cer

Peringatan

-accept Menggunakan parameter dengan -user opsi dan –machine menunjukkan apakah sertifikat penginstalan harus diinstal dalam konteks pengguna atau mesin. Jika ada permintaan yang luar biasa dalam salah satu konteks yang cocok dengan kunci publik yang diinstal, maka opsi ini tidak diperlukan. Jika tidak ada permintaan yang luar biasa, maka salah satu permintaan ini harus ditentukan.

certreq -policy

File policy.inf adalah file konfigurasi yang menentukan batasan yang diterapkan pada sertifikasi CA, ketika subordinasi yang memenuhi syarat ditentukan.

Untuk membangun permintaan lintas sertifikat:

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

Menggunakan certreq -policy tanpa parameter lain membuka jendela dialog, memungkinkan Anda memilih file yang diminta (.req, .cmc, .txt, .der, .cer atau .crt). Setelah Anda memilih file yang diminta dan klik Buka, jendela dialog lain terbuka, memungkinkan Anda memilih file policy.inf.

Contoh

Temukan contoh file policy.inf di Sintaks CAPolicy.inf.

certreq -sign

Untuk membuat permintaan sertifikat baru, tanda tangani, dan untuk mengirimkannya:

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

Keterangan

  • Menggunakan certreq -sign tanpa parameter lain, ia membuka jendela dialog sehingga Anda dapat memilih file yang diminta (req, cmc, txt, der, cer atau crt).

  • Menandatangani permintaan subordinasi yang memenuhi syarat mungkin memerlukan kredensial Administrator Perusahaan. Ini adalah praktik terbaik untuk mengeluarkan sertifikat penandatanganan untuk subordinasi yang memenuhi syarat.

  • Sertifikat yang digunakan untuk menandatangani permintaan subordinasi yang memenuhi syarat menggunakan templat subordinasi yang memenuhi syarat. Administrator Perusahaan harus menandatangani permintaan atau memberikan izin pengguna kepada individu yang menandatangani sertifikat.

  • Anda mungkin diharuskan meminta personel tambahan menandatangani permintaan CMC setelah Anda. Ini tergantung pada tingkat jaminan yang terkait dengan subordinasi yang memenuhi syarat.

  • Jika CA induk dari CA subordinat yang memenuhi syarat yang Anda instal offline, Anda harus mendapatkan sertifikat CA untuk CA subordinat yang memenuhi syarat dari induk offline. Jika CA induk online, tentukan sertifikat CA untuk CA subordinat yang memenuhi syarat selama wizard Penginstalan Layanan Sertifikat.

certreq -enroll

Anda dapat menggunakan komentar ini untuk mendaftar atau memperpanjang sertifikat Anda.

Contoh

Untuk mendaftarkan sertifikat, menggunakan templat WebServer , dan dengan memilih server kebijakan menggunakan U/I:

certreq -enroll –machine –policyserver * WebServer

Untuk memperbarui sertifikat menggunakan nomor seri:

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

Anda hanya dapat memperbarui sertifikat yang valid. Sertifikat yang kedaluwarsa tidak dapat diperbarui dan harus diganti dengan sertifikat baru.

Opsi

Opsi Deskripsi
-any Force ICertRequest::Submit untuk menentukan jenis pengodean.
-Attrib <attributestring> Menentukan pasangan string Nama dan Nilai, dipisahkan oleh titik dua.

Pisahkan pasangan string Nama dan Nilai menggunakan \n (misalnya, Name1:value1\nName2:value2).

-biner Memformat file output sebagai biner alih-alih dikodekan base64.
-policyserver <policyserver> ldap: <path>
Masukkan URI atau ID unik untuk komputer yang menjalankan layanan web Kebijakan Pendaftaran Sertifikat.

Untuk menentukan bahwa Anda ingin menggunakan file permintaan dengan menelusuri, cukup gunakan tanda minus (-) untuk <policyserver>.

-config <ConfigString> Memproses operasi dengan menggunakan CA yang ditentukan dalam string konfigurasi, yaitu CAHostName\CAName. Untuk koneksi https:\\, tentukan URI server pendaftaran. Untuk CA penyimpanan komputer lokal, gunakan tanda minus (-).
-anonim Gunakan kredensial anonim untuk layanan web Pendaftaran Sertifikat.
-kerberos Gunakan kredensial Kerberos (domain) untuk layanan web Pendaftaran Sertifikat.
-clientcertificate <ClientCertId> Anda dapat mengganti <ClientCertId> dengan thumbprint sertifikat, CN, EKU, templat, email, UPN, atau sintaks baru name=value .
-nama pengguna <username> Digunakan dengan layanan web Pendaftaran Sertifikat. Anda dapat mengganti <username> dengan nama SAM atau domain\nilai pengguna . Opsi ini untuk digunakan dengan -p opsi .
-p <password> Digunakan dengan layanan web Pendaftaran Sertifikat. Ganti <password> dengan kata sandi pengguna yang sebenarnya. Opsi ini untuk digunakan dengan -username opsi .
-pengguna -user Mengonfigurasi konteks untuk permintaan sertifikat baru atau menentukan konteks untuk penerimaan sertifikat. Ini adalah konteks default, jika tidak ada yang ditentukan dalam INF atau templat.
-mesin Mengonfigurasi permintaan sertifikat baru atau menentukan konteks untuk penerimaan sertifikat untuk konteks komputer. Untuk permintaan baru, itu harus konsisten dengan kunci INF MachineKeyset dan konteks templat. Jika opsi ini tidak ditentukan dan templat tidak mengatur konteks, maka defaultnya adalah konteks pengguna.
-Crl Termasuk daftar pencabutan sertifikat (CRL) dalam output ke file PKCS #7 yang dikodekan base64 yang ditentukan oleh certchainfileout atau ke file yang dikodekan base64 yang ditentukan oleh requestfileout.
-Rpc Menginstruksikan Layanan Sertifikat Direktori Aktif (AD CS) untuk menggunakan koneksi server panggilan prosedur jarak jauh (RPC) alih-alih COM Terdistribusi.
-adminforcemachine Gunakan Layanan Kunci atau peniruan identitas untuk mengirimkan permintaan dari konteks Sistem Lokal. Mengharuskan pengguna memanggil opsi ini menjadi anggota Administrator Lokal.
-renewonbehalfof Kirimkan perpanjangan atas nama subjek yang diidentifikasi dalam sertifikat penandatanganan. Ini mengatur CR_IN_ROBO saat memanggil metode ICertRequest::Submit
-f Paksa file yang ada untuk ditimpa. Ini juga melewati templat dan kebijakan penembolokan.
-q Gunakan mode senyap; tekan semua perintah interaktif.
-unicode Menulis output Unicode ketika output standar dialihkan atau disalurkan ke perintah lain, yang membantu ketika dipanggil dari skrip Windows PowerShell.
-unicodetext Mengirim output Unicode saat menulis blob data yang dikodekan teks base64 ke file.

Format

Format Deskripsi
requestfilein Nama file input base64 atau input biner: permintaan sertifikat PKCS #10, permintaan sertifikat CMS, permintaan perpanjangan sertifikat PKCS #7, sertifikat X.509 untuk disertifikasi silang, atau permintaan sertifikat format tag KeyGen.
requestfileout Nama file output yang dikodekan Base64.
certfileout Nama file X-509 yang dikodekan Base64.
PKCS10fileout Untuk digunakan dengan certreq -policy parameter saja. Nama file output PKCS10 yang dikodekan Base64.
certchainfileout Nama file PKCS #7 yang dikodekan Base64.
fullresponsefileout Nama file respons lengkap yang dikodekan Base64.
policyfilein Untuk digunakan dengan certreq -policy parameter saja. File INF yang berisi representasi tekstual ekstensi yang digunakan untuk memenuhi syarat permintaan.

Sumber Tambahan

Artikel berikut berisi contoh penggunaan certreq: